插入多行,parent = lastInsertId

时间:2013-11-10 21:45:30

标签: mysql

是否有一种方法(在单个查询中),插入多行,并让一些行知道先前插入的行的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中执行此操作?

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分:0)

您可以获取最后插入的ID,但不能以允许您按照自己的方式在单个查询中插入多行的方式,因为无论如何都需要查询。

如果没有大量并发访问权限,您可以锁定表格,根据当前最大ID预先计算ID,插入所有内容并解锁。