Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Есть функция, через которую приложение пишет в базу на сервере MySQL 8.0:
Неактивен
В этом, думаю, виновато "ignore". При вставке добавляется новый ID, но если вставка не удалась идет откат, но счетчик уже увеличен и следующая вставка будет с пропуском.
Отредактированно klow (08.06.2018 19:54:27)
Неактивен
Как вставка с первой попытки не удалась, а со второй попытки удалась? Данные-то одни и те же. Все данные из приложения без исключения записались в базу. Вот только половина записались при первом же вызове функции, а вторая половина – только со второй попытки. И при этом нет ни одной записи, которая бы записалась с третьей, четвертой или любой другой большей попытки.
ps. Пропуски в id есть размером одно, два и три значения.
Неактивен
Я немного о другом.
Например, Вы вставляете значение link = 'aaa'
Получили ID, например, 123. Второй раз вставляете link = 'aaa' счетчик увеличился и будет равен 124, но вернется Вам ID=123, так как значение link = 'aaa' уже есть в базе с ID = 123.
Дальше вставляете link = 'aaa' снова счетчик увеличится и будет 125, но вернется Вам снова 123.
Дальше вставляете значение, которого нет в БД и получите ID 126. Вот Вам и пропуски. Но не суть. Вы в принципе неправильно подходите к ID. Его нельзя использовать для подобных целей. Если Вам нужна нумерация используйте нумерацию, но не ID.
Но если Вам так нужно использовать ID, то перед вставкой проверяйте наличие записи в БД, например,
Неактивен
Страниц: 1