Синтаксис INSERT … SELECT
INSERT [LOW_PRIORITY] [IGNORE] [INTO] имя_таблицы [(списокстолбцов)]
SELECT …
С помощью INSERT … SELECT можно быстро вставить множество строк в одну таблицу из другой или других. Например:
INSERT INTO tbl temp2 (fld__ id) SELECT tbl_templ.fld_order_id
FROM tbl_templ WHERE tbl_templ. fld_order__id > 100;
В отношении оператора INSERT… SELECT соблюдаются следующие условия:
2. Не ИСПОЛЬЗОВать DELAYED С INSERT. . . SELECT.
3. До MySQL 4.0.14 целевая таблица оператора INSERT не могла встречаться в конструкции FROM части SELECT. Это ограничение снято в версии 4.0.14.
4. Столбцы AUTO_INCREMENT работают как обычно.
а Чтобы гарантировать, что бинарный журнал сможет быть использован для пересоздания оригинальных таблиц, MySQL не разрешает параллельные вставки во время выполнения INSERT.. .SELECT.
Вы можете использовать REPLACE вместо INSERT, чтобы перезаписывать старые строки. REPLACE – это дополнение к INSERT IGNORE при обработке новых строк, которые содержат значения уникальных ключей, дублирующих старые строки. Новые строки используются для замены старых вместо того, чтобы просто отвергаться.