我在重复键语句上有一个mysql。
mysql_query("INSERT INTO statistics (classify, apply) VALUES ('$classify', 1)
ON DUPLICATE KEY UPDATE apply = apply + 1");
id classify apply
1 A 1
但它没有更新现有的行,而是继续添加另一行,问题在哪里?
答案 0 :(得分:2)
ON DUPLICATE KEY
才会更新行。因此,只有在使用该列的唯一键或主键时才会发生这种情况。您似乎没有为classify
列创建唯一键。
答案 1 :(得分:2)
列classify
可能不是unique
。您需要在表格中添加UNIQUE
字段才能使ON DUPLICATE KEY UPDATE
生效。如果您尚未设置,则可以在下面执行此语句。
ALTER TABLE statistics ADD CONSTRAINT tb_uq UNIQUE (classify)