0

有没有办法(在单个查询中)插入多行,并让一些行知道先前插入的行的 id?

insert into my_table(contents, css) values ('some text', 'color: blue');  // grab id from that
insert into my_table(contents, css, parent_id) values ('child text', 'color: pink', last_insert_id);
// etc

将它们分成单独的查询是一个性能问题,我想避免使用proc,那么有没有办法只在mysql中做到这一点?

4

2 回答 2

0

试试这个:

insert into my_table(contents, css) values ('some text', 'color: blue');  // grab id from that

SELECT LAST_INSERT_ID();

insert into my_table(contents, css, parent_id) values ('child text', 'color: pink', last_insert_id);

SELECT LAST_INSERT_ID();
于 2013-11-10T21:54:20.540 回答
0

您可以获取最后插入的 id,但不能以一种允许您以您想要的方式在单个查询中插入多行的方式,因为获取它无论如何都需要查询。

如果不会有很多并发访问,您可以锁定表,根据当前最大 id 预先计算 id,插入所有内容并解锁。

于 2013-11-10T21:55:20.993 回答