通常、MySQL テーブルに行を挿入し、 last_insert_id
を取得できます。しかし今、テーブルに多くの行を一括挿入して ID の配列を取得したいと考えています。誰かこれを行う方法を知っていますか?
似たような質問がいくつかありますが、まったく同じではありません。新しい ID を一時テーブルに挿入するのではなく、ID の配列を取得したいだけです。
一括挿入から lastInsertId を取得できますか?
last_insert_id() を使用した Mysql の複数行挿入選択ステートメント
私が考える唯一の方法は、挿入された行のセットごとに一意の識別子 (GUID) を保存することです 次に行IDを選択します。 例えば:### リーリー
また、uuid()
を使用して、データベースに guid
を生成することもできます。古いスレッドですが、調べてみたのでここにあります: MySQL の最新バージョンで InnoDB を使用している場合は、
LAST_INSERT_ID()
とROW_COUNT( )
ID リスト。innodb_autoinc_lock_mode
が 0 (レガシー) または 1 (継続) に設定されている場合、InnoDB は一括挿入を行うときに自動的に増加するシーケンス番号を保証します。 したがって、
LAST_INSERT_ID()から
first ID を取得し、ROW_COUNT()-1を追加することで
last ID を取得できます。