如何使用INSERT ... ON DUPLICATE KEY UPDATE?

时间:2019-04-09 08:18:37

标签: mysql crud

状态问题

除了MySQL服务器中第一个col为PK和auto_increment外,col“ C ”为STRING / VARCHAR。如何在“ C ”列上使用INSERT ... ON DUPLICATE KEY UPDATE。

我也应该将col“ C ”设置为UNIQUE吗?

示例

假设我在MySQL服务器中的表与此类似...

---------------------------
|ID(PK)| A | B | C | D | E |
+------+---+---+---+---+---+
|   1  |   |   |   |   |   |
|   2  |   |   |   |   |   |
|   3  |   |   |   |   |   |
---------------------------

我期望的结果

必须从MySQL服务器中忽略重复的输入。

如果重复项已作为“此查询已存在。” ?我是否也可以发送警报弹出窗口/会话弹出窗口?

1 个答案:

答案 0 :(得分:0)

必须将列C设置为NOT NULL,UNIQUE,然后SQL将针对尝试重复值插入返回错误。您可以在后端代码中处理该错误。或者,您也可以使用“ ON DUPLICATE KEY UPDATE”子句来处理和更改重复值:

INSERT INTO t1 (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE c=c+1;