Как получить идентификатор строки, которая затрагивается при использовании "REPLACE INTO" в MySQL

Я использую REPLACE INTO команда для вставки / обновления записи в таблице MySQL. Однако я хочу получить идентификатор строки, на которую влияет REPLACE INTO,

я использовал lastInsertId() с INSERT INTO но это не полезно здесь, потому что, если моя запись уже существует, то с помощью lastInsertId() с REPLACE INTOЯ получу неправильный ID.

Так есть ли в MySQL + php + PDO какая-либо функция для получения этого идентификатора?

1 ответ

Поскольку REPLACE INTO делает DELETE а затем INSERT вы всегда получите "неправильный" идентификатор с любым lastInsertId() функция (неправильно как в "не та, которую вы, вероятно, ожидаете").

Так что вы либо должны жить с этим, посмотрите в INSERT INTO ... ON DUPLICATE KEY UPDATE или укажите, что вы пытаетесь выполнить, чтобы мы могли дать дальнейшие рекомендации о том, как действовать.

Другие вопросы по тегам