代码之家  ›  专栏  ›  技术社区  ›  Ryan

使用mysql/innodb在2个表中创建2条记录

  •  0
  • Ryan  · 技术社区  · 15 年前

    我有两张桌子, T1 T2

    T1=(ID,名称),T2=(ID,FID)

    这个 火焰离子化检测器 在t2中是 T1 .

    创建行的步骤如下。

    1. 在T1中插入一行,获取ID
    2. 使用该ID并将其作为FID插入t2。

    我的问题是:

    因为事务未提交时T1的ID是未知的,那么如何执行对T2的插入呢?

    1 回复  |  直到 15 年前
        1
  •  3
  •   KLee1    15 年前

    如果表1中的id是自动递增的,那么可以这样做:

    INSERT INTO t1 (name) VALUES ('whatever');
    INSERT INTO t2 (fid) VALUES (LAST_INSERT_ID());
    

    这个来自 MySQL Reference Manual .

    然后你可以这样做:

    INSERT INTO t1 (name) VALUES ('whatever');
    SET @id=LAST_INSERT_ID();
    INSERT INTO t2 (fid) VALUES (@id);
    INSERT INTO t3 (fid) VALUES (@id);
    ...