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

最後に挿入された ID を取得できますが、取得するにはクエリが必要になるため、1 つのクエリで複数の行を希望どおりに挿入できる方法ではありません。

同時アクセスが多くない場合は、テーブルをロックし、現在の最大 ID に基づいて ID を事前に計算し、すべてを挿入してロックを解除することができます。

于 2013-11-10T21:55:20.993 に答える