自動インクリメンタル プライマリ ID を持つテーブルがあり、プライマリ ID と同じ値である必要がある列を含む行をこのテーブルに挿入する必要がある場合があります。行が挿入される前に、この列をプライマリ ID と同じ値に設定するにはどうすればよいですか? これは可能ですか、または行が挿入された後に別の更新クエリを実行する必要がありますか?
質問する
141 次
1 に答える
0
新しいキーを参照する正規の方法は、 を使用することLAST_INSERT_ID()
です。値として挿入LAST_INSERT_ID()
してみることができます:
INSERT INTO FOO (dependent_field) values (LAST_INSERT_ID());
http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.htmlから
LAST_INSERT_ID() SQL 関数または mysql_insert_id() C API 関数を使用して、最新の AUTO_INCREMENT 値を取得できます。これらの関数は接続固有であるため、それらの戻り値は、挿入を実行している別の接続の影響を受けません。
警告: 私はこれをテストしていないのでLAST_INSERT_ID()
、新しい ID を生成する挿入と同じステートメント内で が適切に評価されない可能性は十分にあります。その場合、私が考えることができる唯一の解決策は、あなたが提案するように後で更新することです.
于 2012-06-15T14:06:17.983 に答える