Ребят, подскажите, почему при добавлении строк из одной таблицы в другую, AI занимает произвольное значение? Команда INSERT INTO ... SELECT FROM
Добавляем 50 строк, AI = 65.
Добавляем 300 строк, AI = 512.
Сбрасываю всегда значение на 1, тк очистить таблицу нельзя из-за связи внешним ключом. при этом все зависимые таблицы тоже чистые.
MIKEk8: Всё правильно делаю. Ради интереса создал две чистые таблицы MYISAM и INNODB. Вставляю данные из третей таблицы INSERT ... SELECT и в первом случае Ai верный, во втором рандомный, то есть lastid 50, ai 65 внезапно)
maximka787: Тогда я вам порекомендую использовать ... . И у вас всё будет правильно работать. А ещё было бы неплохо в таблице ... изменить свойство ... на ... . Удачи.
P.S.: на ваше "Всё правильно делаю." у MySQL (или innodb) иное мнение.
MIKEk8: :) Я делаю стандартный INSERT а стандартную таблицу. При вставке 50 строк (из любой таблицы) AI ставит 51 - это в MyiSAM. В InnoDB чудом AI выставляется 65. Такой цифры быть не должно, тк её нигде нет. откуда он её взял, я тоже не знаю. Блокировка таблицы не помогает. Все равно AI не 51.
maximka787: Ладно, тогда сам эксперементируй: 1) всели записи перенеслись? 2) попробуй из новой myisam в новую innodb перенести. 3) попробуй переносить не всё, а по несклбко чтрок и найди где ai прыгает
MIKEk8: Пробую, но пока безуспешно. Оставил в главной (вставляемой) таблице всего 10 записей. Делал её и InnoDB и MyISAM (с этим нет проблем). Удалил все поля вкл индекс, оставил только поле email. INSERT INTO `tab_new` (`email`) SELECT `email` FROM `tab_old` Все равно добавляется AI 16. хотя записей ровно 10 вставлено и все ID в новой идут равномерно, как надо. Думал проблема в сервере, но на другой БД та же история. Хотя на локалке все норм, но тут версия mysql 5.0