Каковы практические различия между `REPLACE` и` INSERT… ON DUPLICATE KEY UPDATE` в MySQL?

Что мне нужно, это установить значения всех полей записи с определенным ключом (на самом деле ключ составной), вставляя запись, если еще нет записи с таким ключом.

REPLACE кажется, что предназначено для выполнения работы, но в то же время его страница руководства предлагаетINSERT ... ON DUPLICATE KEY UPDATE.

Какой из них мне лучше выбрать и почему?

Единственный «побочный эффект»REPLACE мне приходит в голову, что это будет увеличивать значения автоинкремента (к счастью, я не использую их), покаINSERT ... ON DUPLICATE KEY UPDATE вероятно, не будет. Какие еще практические различия следует учитывать? В каких конкретных случаях можноREPLACE быть предпочтительнееINSERT ... ON DUPLICATE KEY UPDATE и наоборот?

Ответы на вопрос(7)

Ваш ответ на вопрос