Привет.
mysql 5.5 INNODB
Только что на глазах увидел как вновь вставленная строка встала в id c номером предыдущей строки удаленной за пару минут до этого! id PRIMATY AUTO_INCREMENT.
Как это объяснить не знаю даже.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
AlmazDelDiablo
5.06.2014 - 17:16
Проделки Сатаны сие есть!
_____________
Блог |
VK |
GitHub |
Twitch
Цитата |
Свернутый текст Проделки Сатаны сие есть!
|
Смех смехом, а не знаю что и думать. Из-за чего такое могло произойти??? Как теперь верить???
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Invis1ble
5.06.2014 - 17:29
CREATE TABLE IF NOT EXISTS `tab` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`id1` int(11) unsigned NOT NULL DEFAULT '0',
`id2` int(11) unsigned NOT NULL DEFAULT '0',
`t1` int(11) unsigned NOT NULL DEFAULT '0',
`t2` int(11) unsigned NOT NULL DEFAULT '0',
`t3` int(11) unsigned NOT NULL DEFAULT '0',
`p` int(10) unsigned DEFAULT '0',
PRIMARY KEY (`id`),
KEY `b` (`id2`,`t1`,`t2`,`p`),
KEY `p` (`id2`,`p`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=20 ;
да обычная таблица
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Создал строку ей присвоился 14 id, вместе с ней создалась директория с тем же названием 14...спустя какое то время удалил строку, но забыл удалить директорию. Стал создавать новую строку, вылезла ошибка что такой каталог уже существует!
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
glock18
5.06.2014 - 18:46
Неплохо бы именно последовательность действий, включая сами запросы. Мб там какой-то оптимайз запускался после дилита или еще что. Лучше всего было бы, если это можно было повторить у себя по описанию.
ABCТот же trancate очищает и обнуляет auto-increment. Repair может быть и optimize.
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Цитата |
Repair может быть и optimize. |
но ведь они-то не должны счетчик сбрасывать??? trancate понятно...но тут, как объяснить. Думаю, что связано с транзакциями.
Сколько не пробывал не удалось получить второй раз так.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
glock18
6.06.2014 - 07:30
Цитата (ABC @ 5.06.2014 - 23:44) |
Думаю, что связано с транзакциями. |
Если запись была вставлена и удалена в одной транзакции, то мб счетчик не увеличивается? Ну и если транзакция не была завершена была, тогда все еще проще
Цитата |
Если запись была вставлена и удалена в одной транзакции, то мб счетчик не увеличивается? Ну и если транзакция не была завершена была, тогда все еще проще |
ну ведь даже если строка вставилась с транзакцией, а потом во время этой же транзакции операции отменили, то счетчик все равно изменится. Вот тут непонятно.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Invis1ble
6.06.2014 - 07:47
без воспроизводимого кейса это гадания на кофейной гуще
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
Короче был не до конца уверен стал еще тестить обнаружил причина в этом:
https://dev.mysql.com/doc/refman/5.0/en/inn...t-handling.htmlУ InnoDB есть свойство - при рестарте MySQL автоинкремент устанавливается в MAX(id)+1
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.