如何在MySQL中“插入,如果不存在”?我開始使用谷歌搜索,發(fā)現(xiàn)這篇文章討論了互斥表。我有一張約有1400萬條記錄的表格。如果我想以相同的格式添加更多數(shù)據(jù),有沒有辦法確保我想要插入的記錄不存在而不使用一對(duì)查詢(即,一個(gè)查詢要檢查,一個(gè)要插入是結(jié)果集是空)?unique對(duì)某個(gè)字段的約束是否保證insert如果它已經(jīng)存在則會(huì)失?。克坪踔挥幸粋€(gè)約束,當(dāng)我通過php發(fā)出插入時(shí),腳本呱呱叫。
3 回答

湖上湖
TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
INSERT INTO `table` (value1, value2) SELECT 'stuff for value1', 'stuff for value2' FROM `table` WHERE NOT EXISTS (SELECT * FROM `table` WHERE value1='stuff for value1' AND value2='stuff for value2') LIMIT 1
或者,外部SELECT
語句可以引用DUAL
以便處理表最初為空的情況:
INSERT INTO `table` (value1, value2) SELECT 'stuff for value1', 'stuff for value2' FROM DUAL WHERE NOT EXISTS (SELECT * FROM `table` WHERE value1='stuff for value1' AND value2='stuff for value2') LIMIT 1
添加回答
舉報(bào)
0/150
提交
取消