【问题标题】:Update MySQL: Duplicate unique key #1062更新 MySQL:重复唯一键 #1062
【发布时间】:2013-09-07 06:09:19
【问题描述】:

我有一张这样的桌子:

CREATE TABLE IF NOT EXISTS `activity` (
  `ID` int(8) NOT NULL AUTO_INCREMENT,
  `action` tinyint(1) NOT NULL,
  `userID` int(8) NOT NULL,
  `categoryID` int(8) NOT NULL,
  PRIMARY KEY (`ID`),
  UNIQUE KEY `UNIQUE` (`userID`,`categoryID`),
  KEY `categoryID` (`categoryID`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ;

以下信息:

INSERT INTO `activity` (`ID`, `action`, `userID`, `categoryID`) VALUES
(1, 2, 11, 312);

我正在尝试执行此查询:

UPDATE `activity` SET `action` = '3' WHERE `userID` = '11' AND `categoryID` = '312' ;

然后回复我:

Duplicate entry '11-312' for key 'UNIQUE'

我不知道为什么。我没有更改唯一键或插入另一条新记录。有什么问题?

谢谢。

【问题讨论】:

  • 我试图重现,但更新对我有用。你用的是什么客户端?
  • 你的桌子上有触发器吗?

标签: mysql key duplicates unique


【解决方案1】:

我不知道为什么,当我导出整个数据库时,而不是在 SQL 之前显示,显示这个:

CREATE TABLE IF NOT EXISTS `activity` (
  `ID` int(8) NOT NULL AUTO_INCREMENT,
  `action` tinyint(1) NOT NULL,
  `userID` int(8) NOT NULL,
  `categoryID` int(8) NOT NULL,
  PRIMARY KEY (`ID`),
  UNIQUE KEY `UNIQUE` (`action`,`userID`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ;

现在我重写了设置表 sql,它可以工作了。

【讨论】:

    猜你喜欢
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    • 2012-08-24
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    相关资源
    最近更新 更多