【发布时间】:2014-08-06 01:32:35
【问题描述】:
我一次插入多行,例如:
INSERT INTO person VALUES ('joe', 50), ('jon', 24);
然后我需要使用他们的 id 将上面的内容链接到另一个表。通常我会使用LAST_INSERT_ID()
INSERT INTO hobbies VALUES (LAST_INSERT_ID(), "golf");
但是插入多个值是不可行的,因为LAST_INSERT_ID() 返回第一个插入行的 id。
我可以在每次插入爱好后增加LAST_INSERT_ID(),但这假设所有人员行都已成功插入。
另一种选择是一次只插入一个人员行,但我不知道这是否会影响性能?
【问题讨论】:
-
只需使用多个语句并分别插入每个人。只要它们在同一个事务中,性能应该是相似的。
-
LAST_INSERT_ID() 返回一条记录的插入 ID。不能用于多条记录插入!
-
您可以使用触发器在表格的每个新条目上插入行