亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

如何在MySQL表中插入多行並傳回新的ID?
P粉373990857
P粉373990857 2024-04-06 10:03:44
0
2
777

通常我可以在 MySQL 表中插入一行並取得 last_insert_id 。但現(xiàn)在,我想將許多行批量插入到表中並獲取 ID 數(shù)組。有人知道我該怎麼做?

有一些類似的問題,但不完全相同。我不想將新 ID 插入任何臨時(shí)表;我只想取回 ID 陣列。

我可以從批次插入中檢索lastInsertId嗎?

帶有l(wèi)ast_insert_id()的Mysql多行插入選擇語句

P粉373990857
P粉373990857

全部回覆(2)
P粉561438407

我認(rèn)為可以做到的唯一方法是為插入的每組行儲(chǔ)存唯一識(shí)別碼(guid) 然後選擇行 ID。 例如:

INSERT INTO t1
(SELECT col1,col2,col3,'3aee88e2-a981-1027-a396-84f02afe7c70' FROM a_very_large_table);
COMMIT;

SELECT id FROM t1 
WHERE guid='3aee88e2-a981-1027-a396-84f02afe7c70';

您也可以使用 uuid() 在資料庫中產(chǎn)生 guid

P粉775723722

舊線程,但只是研究了這個(gè),所以這裡是:如果您在最新版本的MySQL 上使用InnoDB,您可以使用LAST_INSERT_ID()ROW_COUNT() 獲取ID 清單。

InnoDB 保證在進(jìn)行批次插入時(shí)自動(dòng)遞增的順序號(hào),前提是 innodb_autoinc_lock_mode 設(shè)定為 0(傳統(tǒng))或 1(連續(xù))。 因此,您可以從 LAST_INSERT_ID() 取得第一個(gè) ID,並透過新增 ROW_COUNT()-1 取得最後 ID。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板