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