Как скопировать несколько записей в MySql?

У меня есть таблица «tb_products» в базе данных MySql с полем «ID» в качестве первичного ключа и автоматическим увеличением; как лучше всего в SQL выбрать несколько записей по идентификатору и скопировать их в ту же таблицу с новыми увеличенными идентификаторами?


person Max    schedule 26.02.2013    source источник


Ответы (2)


INSERT INTO tb_products
SELECT NULL id, field1, field2, field3, ...
FROM tb_products
WHERE id IN (id1, id2, id3, ...)

Список полей в предложении SELECT должен включать все поля, кроме id.

person Barmar    schedule 26.02.2013
comment
Поля в SELECT должны совпадать с количеством полей в таблице, в которую вы вставляете. Если вы не хотите копировать id, вам нужно SELECT NULL или добавить список полей в INSERT (INSERT INTO table(field1,field2,...)). - person Rocket Hazmat; 26.02.2013

используйте вставку mysql, выберите http://dev.mysql.com/doc/refman/5.1/en/insert-select.html, и когда вы выбираете из существующей таблицы, вы просто опускаете выбор идентификатора и позволяете новой таблице генерировать новый идентификатор

person bizzehdee    schedule 26.02.2013