Как да копирате множество записи в MySql?

Имам таблица "tb_products" в базата данни MySql с поле "ID" като първичен ключ и автоматично нарастване; каква е най-добрата практика в SQL за избиране на множество записи по ID и копирането им в една и съща таблица с нови увеличени идентификатори?


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