1

我有一张看起来与此类似的表...

+-------------+-------------+
| 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 ,因为我正在检查多个重复项,因此我认为这对我不起作用。

4

1 回答 1

3

一、设置(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'
于 2013-01-03T00:54:40.830 回答