我有一个关于重复键语句的 mysql。
mysql_query("INSERT INTO statistics (classify, apply) VALUES ('$classify', 1)
ON DUPLICATE KEY UPDATE apply = apply + 1");
id classify apply
1 A 1
但它没有更新现有行,而是不断添加另一行,问题出在哪里?
ON DUPLICATE KEY
仅当您尝试插入会引发重复键错误(如名称状态)的记录时才会更新行。因此,仅当您为该列使用唯一键或主键时,才会发生这种情况。看起来您没有为该classify
列创建唯一键。
这可能是列classify
不是unique
。您需要UNIQUE
在表格中有一个字段才能ON DUPLICATE KEY UPDATE
工作。如果没有设置,可以执行下面这条语句。
ALTER TABLE statistics ADD CONSTRAINT tb_uq UNIQUE (classify)