【问题标题】:MySQL Duplicate entry for key on UPDATEMySQL UPDATE 键的重复条目
【发布时间】:2012-07-08 05:58:10
【问题描述】:

我在名为 label 的列上有一个 unique 索引,但出于某种奇怪的原因,我尝试进行如下更新:

UPDATE books SET label = 'foo bar', title = 'something new', modified = UTC_TIMESTAMP();

并且已经存在一行 label = 'foo bar' 这个错误:

 #1062 - Duplicate entry 'foo bar' for key 'label'

如何让 MySQL 进行更新?这不应该被打破,因为从技术上讲,仍然只有一行带有密钥 foo bar

谢谢。

【问题讨论】:

    标签: mysql unique-key


    【解决方案1】:

    此 SQL 查询尝试使用这些值更新 books 表中的每条记录,因为您没有 WHERE 子句。它失败了,因为您只能拥有一个具有该标签值的记录,但查询想要将它们全部设置为它。

    我认为您可能没有执行您想要的查询。也许您打算使用该标签更新记录的标题和时间。检查你的语法。

    【讨论】:

    • 没问题。贾斯汀帮助贾斯汀是很自然的;)如果它解决了问题,别忘了点击绿色检查!
    猜你喜欢
    • 2012-08-18
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 2018-05-02
    • 2014-10-27
    • 2012-08-18
    • 1970-01-01
    • 2016-01-10
    相关资源
    最近更新 更多