Выполнение UPDATE или INSERT в зависимости от того, существует строка или нет в MySQL

В MySQL я пытаюсь найти эффективный способ выполнить UPDATE, если строка уже существует в таблице, или INSERT, если строка не существует.

Пока я нашел два возможных пути:

Очевидный: открыть транзакцию, SELECT, чтобы найти, если строка существует, INSERT, если она не существует, или UPDATE, если она существует, зафиксировать транзакциюсначала вставьте IGNORE в таблицу (чтобы не возникало ошибок, если строка уже существует), затем UPDATE

Второй метод позволяет избежать транзакции.

Какой из них вы считаете более эффективным, и есть ли лучшие способы (например, использование триггера)?

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

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