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