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