Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: сдвиг id при записи данных с одной таблицы в другую mysql
Покинул форум
Сообщений всего: 11
Дата рег-ции: Июль 2013
Помог: 0 раз(а)
друзья такой вопрос - почему при копировании данных из одной таблицы в другую автоинкремент начинается не с последней записи?
к примеру есть table1 с 7288 записями и table2 пустая
делаю запрос
INSERTINTO table2 (col1, col2)SELECT col1, col2 FROM table1;
в таблице table2 получается 15479 и автоинкремент AUTO_INCREMENT=16383;
смотрю что разница в айдишниках в середине таблицы, т.е. видно что вторая запись запись данных началась с огромным отступом записи...
хотя общее количество записей правильное 14576
Для уточнения хочу заметить, что само полу ID я не копирую, а только остальные простые поля.
Подскажите пожалуйста почему такое происходит.
Заранее благодарен!
andrewkard
Отправлено: 29 Июня, 2018 - 14:49:41
Участник
Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014
Помог: 30 раз(а)
Вы уверены что делаете запрос, а не делаете импорт таблицы, которую слили с помощью ПМА ?
panchenko
Отправлено: 01 Июля, 2018 - 16:25:01
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Июль 2013
Помог: 0 раз(а)
Здравствуйте, да уверен, у меня есть таблица-1 и таблица-2... я просто делаю запрос на копирование данных их таблицы-1 в таблицу-2.
Приложу бэкап первой таблицы и бэкап второй, можете проделать тоже самое... если результат будет другой дайте знать.
Так же добавлю ссылку на 5-минут видео в котором показываю в чём проблема.
google-disk https://drive[dot]google[dot]com/drive/f[dot][dot][dot]a4C8AWFbTA6UXG2h
Буду очень признателен, если кто-то сможет повторить данный эксперимент со своими таблицами данных, но только прошу что бы данных в таблице было не меньше чем 7000 строк, что бы не было потом вопросов...
The default innodb_autoinc_lock_mode is "1". This means InnoDB only locks the auto-increment column on the table until the end of the INSERT statement if the number of rows to be inserted cannot be determined in advance (for example in an INSERT ... SELECT query). For a simple INSERT like your queries, it assigns the auto-increment ID in advance and then allows other inserts to the table immediately, for faster writing.
получается что в этом случае движку не удается корректно посчитать следующий инкремент и он выставляет его с запасом.
panchenko
Отправлено: 03 Июля, 2018 - 16:01:45
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Июль 2013
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.