У меня есть таблица с именем srcCodDsc, которая имеет 3 столбца:
- ID: INT ПЕРВИЧНЫЙ КЛЮЧ с AUTO_INCREMENT
- locId: VARCHAR
- locDsc: VARCHAR
Я также определил уникальный индекс для locId, чтобы избежать дублирования значения locId.
Теперь проблема:
INSERT INTO srcCodDsc (locId,locDsc) VALUES ('012_002','value to set')
ON DUPLICATE KEY UPDATE locDsc=VALUES(locDsc);
Запрос корректно обновляет значение locDsc строки с locId = '012_002', но я обнаруживаю, что счетчик следующего значения AUTO_INCREMENT увеличивается при каждом выполнении запроса, даже если новая строка не вставляется.
Я проверяю это командой:
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='berna' AND TABLE_NAME='srcCodDsc';
Как преобразовать запрос в условную форму, которая после проверки, существует ли запись с locId = '012_002', в одном случае вставляет, в другом обновляет, и если locDsc уже стоит, новое значение ничего не делает
ПРИМЕЧАНИЕ: тот же запрос в mySql работает и не обновляет следующее значение auto_increment.
Спасибо