我有一个表用户密码:

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

为什么?

最佳答案

你在找这个:

on duplicate key update hashedPassword = VALUES(hashedPassword)

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

关于mysql - MySQL-…关于重复 key 不更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24122668/

10-10 05:42