2015-02-12 1 views
0

Я новичок в sql advance, и я пытаюсь вставить строки в одну таблицу, выбрав другой. Но появляется какая-то ошибка.Копирование таблиц mysql

Вот моя проблема
Так у меня есть две таблицы

table1 having id(autoincrement), names 
table2 having id(autoincrement), names 

Теперь при запуске table1 пуст и table2 с 2 рядами

1,'myself' 
2,'yourself' 

Таким образом, проблема начинается здесь
Когда я исполняю следующий запрос

Insert into table1 (names) select (names) from table2 

Итак, теперь обе строки таблицы2 должны быть скопированы в таблицу1 Я работаю отлично.
Но как насчет значения автоинкремента id? К до сих пор table1 автоинкремент идентификатор должен хранить 3 со следующего ряда для вставки должны иметь ИН 3

но не работает, как ожидается, так TABLE1 автоинкремент Ид магазинах 4 т.е. 1(current id value)+2*(no of rows inserted)-1 Так что в следующий раз, когда я выполнить тот же запрос, он вставляет строка с идентификатором 4. Пропуски id = 3. Это проблема, надеюсь, вы все получили то, о чем я говорю.

Спасибо за помощь заранее.

ответ

0

Попробуйте INSERT INTO TABLE1 SELECT * FROM TABLE2

0

Смелее, копию ваших данных через, а затем вы можете изменить начальную auto_inc все, что вы выбираете.

ALTER TABLE table AUTO_INCREMENT = 1000; 
0

Таблица изменений будет занимать около 1 секунды, так как она сначала создает тень таблицы, затем обрабатывается запрос, а если нет. строк таблицы выше, то это может занять около 20-30 секунд. поэтому я не думаю, что alter - хороший ответ на эту проблему. Надеюсь, кто-то поможет вам с командой вставки, например: Вставить в table1 set id = 1; и т.д. ...

Смежные вопросы