У мене є таблиця 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
Чому так?
Відповіді:
3 для відповіді № 1Ви шукаєте це:
on duplicate key update hashedPassword = VALUES(hashedPassword)
дивіться також документи тут: http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html