1

我有一个对两列有唯一约束的表。我正在尝试使用重复密钥更新,但出现错误...

...创建表

CREATE TABLE IF NOT EXISTS `requests` (
  `userFrom` int(11) NOT NULL,
  `userTo` int(11) NOT NULL,
  `dateSent` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  UNIQUE KEY `userFrom` (`userFrom`,`userTo`)
)

...添加一些数据

INSERT INTO requests (userFrom, userTo) VALUES (1, 2)

...然后失败(当传递 1 的 userFrom 和 2 的 userTo

INSERT INTO requests (userFrom, userTo) VALUES (:userFrom, :userTo) ON DUPLICATE KEY UPDATE set dateSent = NOW()

错误是:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'set dateSent = NOW()' at line 1
4

1 回答 1

4

我认为这里不需要set关键字,试试这个

INSERT INTO requests (userFrom, userTo) VALUES (:userFrom, :userTo) ON DUPLICATE KEY UPDATE dateSent = NOW()
于 2012-12-15T10:08:18.893 回答