При использовании mysqli :: insert_id в PHP для INSERT INTO ON DUPLICATE KEY UPDATE я продолжаю получать следующее автоматическое увеличение, а не обновленную строку, если строка обновляется. В той же базе данных, но в другой таблице, у меня нет такого поведения при использовании ON DUPLICATE KEY UPDATE. Вместо этого я получаю идентификатор обновленной строки. Но теперь по какой-то причине в новой таблице, которую я создал, я продолжаю получать следующий идентификатор, который даже не существует. Обе таблицы являются MyISAM и имеют поле автоинкремента. Я не понимаю, почему они ведут себя по-разному.
Пример:
==================================
Table: example
==================================
id | unique_field | data
==================================
1 | unique1 | 123
2 | unique2 | 456
INSERT INTO
example
SET
unique_field = 'unique1',
data = '321'
ON DUPLICATE KEY UPDATE
data = '321'
// mysqli::insert_id returns 3 (not 1)!!
Есть идеи?