1

2 つの列に一意の制約があるテーブルがあります。重複キー更新でユーザーを試みていますが、エラーが発生しています...

... テーブルを作成する

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 に答える