假设我们在MySQL中有3个表,如下所示:
我想向T1,T2和T3插入新行,其中创建T1行需要创建T2和T3行。我无法使用3个INSERT
查询来完成此操作,因为LAST_INSERT_ID()
的值在创建一行后会发生变化。
但是我需要在T1行之前创建T2和T3行。
如何创建一个创建T3和T2行的管道,然后使用它们的PK创建一个T1行?
答案 0 :(得分:4)
您可以使用变量捕获LAST_INSERT_ID
INSERT INTO T2 ... ;
SET @var2 := last_insert_id();
INSERT INTO T3 ... ;
SET @var3 := last_insert_id();
INSERT INTO T1 SET
id_t2 = @var2,
id_t3 = @var3
;