Как получить идентификатор строки, которая затрагивается при использовании "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
или укажите, что вы пытаетесь выполнить, чтобы мы могли дать дальнейшие рекомендации о том, как действовать.