親子関係の可能性があるテーブルがあります。「parentid」には、親の「dataid」への外部キーがあります。次に例を示します。
dataid dataname parentid
---------------------------------
1 example NULL
2 record NULL
3 foo 1
4 bar 1
この例では、人口 "foo" と "bar" は "example" の子です。dataid は自動インクリメントされるため、このテーブルに複数のデータ レコードを挿入したいと思います。追加のクエリを実行せずに挿入後にこの ID を取得できるかどうかを知りたいです。たとえば、次のようになります。
INSERT INTO table (dataname, parentid) VALUES
( cat, NULL ), ( tiger, **dataid from cat** ), ( lion, **dataid from cat** );
この結果を得るには:
dataid dataname parentid
---------------------------------
5 cat NULL
6 tiger 5
7 lion 5
回答 -- PLB (および Simon Cambier) に感謝します。
まだ2つのクエリを次々に実行していますが、これで解決できると思います。
/*first insert parent*/
INSERT INTO table (dataname, parentid) VALUES
( cat, NULL );
/*insert children*/
INSERT INTO table (dataname, parentid) VALUES
( tiger, LAST_INSERT_ID() ), ( lion, LAST_INSERT_ID() );