MySQL - ...重复键不更新

时间:2014-06-09 14:40:17

标签: mysql

我有一个表user_passwords:

user_password_id AI PK
hashPass varchacr(255)

当用户重置密码时,我想要更新该行,因此应该,而确实会失败

insert into user_passwords (user_password_id,hashedPassword)
VALUES('2','$2y$11$pVYR/0hcgOewMn2jgrGx.uGcky5TXxYOPvsbWGyH3VQxZlj3c1QD.')

Error Code: 1062. Duplicate entry '2' for key 'PRIMARY'

我知道,所以我正在尝试以下但没有行更新:

insert into user_passwords (user_password_id,hashedPassword)
VALUES('2','$2y$11$pVYR/0hcgOewMn2jgrGx.uGcky5TXxYOPvsbWGyH3VQxZlj3c1QD.')
on duplicate key update hashedPassword=hashedPassword

为什么?

1 个答案:

答案 0 :(得分:3)

您正在寻找:

on duplicate key update hashedPassword = VALUES(hashedPassword)

另请参阅此处的文档:http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html