sql >> データベース >  >> RDS >> Mysql

複数の行の最後に挿入されたIDを取得する

    last_insert_id()を呼び出すと、最後のバッチに挿入された最初の行のIDが得られます。挿入された他のすべては、シーケンシャルであることが保証されています。

    非常に奇妙なことをしているのでない限り、これにより、各行のIDを簡単に計算できます。

    実際、5.1では、innodb自動増分モードパラメーターの設定に応じて動作が異なります。これは問題ではありません。デフォルトから変更しない限り、期待される動作が表示されます。

    ON DUPLICATE KEYUPDATEやINSERTIGNOREを実行する場合など、これが期待どおりに機能せず、役に立たない場合があります。このような場合、各行のIDを計算するために何か他のことをする必要があります。

    ただし、auto-inc列に値が指定されていないプレーンなバニラINSERTバッチの場合は、簡単です。

    auto-incrementsの詳細innodbで処理されるのはここです



    1. プリペアドステートメントを使用して、挿入された行のIDを返すにはどうすればよいですか?

    2. Windows上の.sqlファイルをpostgresqlにインポートする

    3. Hibernateで外部キーの生成された名前を変更する

    4. MySQLはテキストエリアから複数の行に挿入します