我有一个表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
为什么?
答案 0 :(得分:3)
您正在寻找:
on duplicate key update hashedPassword = VALUES(hashedPassword)
另请参阅此处的文档:http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html