2

次のようなテーブルがあります。

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'

どうしてか分かりません。一意のキーを変更したり、別の新しいレコードを挿入したりしていません。何が問題ですか?

ありがとう。

4

1 に答える 1