[英]Insert if multiple rows don't exist, update if they do
我有一張看起來與此相似的桌子......
+-------------+-------------+
| Field | Type |
+-------------+-------------+
| var1 | varchar(15) |
| var2 | varchar(25) |
| var3 | int(1) |
+-------------+-------------+
問題是我需要能夠插入3個變量,但前提是var1和var2不在表中。 如果var1和var2已經在表中,則應更新var3。
所以舉個例子
INSERT INTO table (var1, var2, var3) VALUES('0','1','2')
會插入3個值,但是
INSERT INTO table (var1, var2, var3) VALUES('0','1','1')
將('0','1','2')更新為('0','1','1')
重要的是,如果存在var1和var2,則不會輸入具有不同var3的重復條目。
我看了幾個其他的問題,但大多數人似乎都推薦IGNORE,我認為這對我不起作用,因為我正在檢查多個副本。
首先,將(var1,var2)
為組合的PRIMARY KEY
ALTER TABLE table ADD PRIMARY KEY(var1,var2)
然后使用INSERT ON DUPLICATE UPDATE
INSERT INTO table (var1, var2, var3) VALUES ('0','1','2') ON DUPLICATE KEY UPDATE var3 = '2'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.