0
我有一個表在兩列上有一個唯一的約束。我想用戶對重複鍵更新,但我得到一個錯誤......關於重複密鑰更新多個唯一約束
...創建表
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)
..然後這個失敗(當傳遞的2
INSERT INTO requests (userFrom, userTo) VALUES (:userFrom, :userTo) ON DUPLICATE KEY UPDATE set dateSent = NOW()
錯誤的1 userFrom和用戶至是:
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
你的DB是存儲用戶的'INT'?爲什麼?常識意味着用戶將是一串字符。你的用戶是以數字形式存儲的?多麼奇怪。 – bobthyasian
@bobthyasian這是一個FK。 – momo
哦!好。良好的保持。 – bobthyasian