通常、MySQL テーブルに行を挿入し、 last_insert_id
を取得できます。しかし今、テーブルに多くの行を一括挿入して ID の配列を取得したいと考えています。誰かこれを行う方法を知っていますか?
似たような質問がいくつかありますが、まったく同じではありません。新しい ID を一時テーブルに挿入するのではなく、ID の配列を取得したいだけです。
一括挿入から lastInsertId を取得できますか?
last_insert_id() を使用した Mysql の複数行挿入選択ステートメント
P粉5614384072024-04-07 09:07:17
私が考える唯一の方法は、挿入された行のセットごとに一意の識別子 (GUID) を保存することです 次に行IDを選択します。 例えば:### リーリー
また、uuid() を使用して、データベースに guid
を生成することもできます。
P粉7757237222024-04-07 00:12:23
古いスレッドですが、調べてみたのでここにあります: 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 を取得できます。