SELECT
Com a instrução INSERT ... SELECT
você pode inserir muitas linhas rapidamente em uma tabela a partir de outras tabelas
INSERT INTO tblTemp2 (fldID) SELECT tblTemp1.fldOrder_ID FROM tblTemp1 WHERE tblTemp1.fldOrder_ID > 100;
As seguintes condições servem para uma instrução INSERT ... SELECT
:
- Antes do MariaDB 4.0.1,
INSERT ... SELECT
operava implicitamente em modoIGNORE
. A partir do MariaDB 4.0.1, você deve especificarIGNORE
explicitamente para ignorar registros que causaria violação de chave duplicada. - Antes do MariaDB 4.0.14, a tabela alvo da instrução
INSERT
não pode aparecer na cláusulaFROM
da parteSELECT
da consulta. Esta limitação é deixada na versão 4.0.14. - Colunas
AUTO_INCREMENT
funcionam da mesma forma. - Em programas C, Você pode usar a função
mysql_info()
da API C para obter informação sobre a consulta. Leia "SintaxeINSERT
". - Para assegurar que o log binário possa ser usado para re-criar a tabela original, MariaDB não permitirá inserções concorrentes em um
INSERT ... SELECT
.
Você também pode utilizar REPLACE
em vez de INSERT
para sobrescrever linhas antigas. REPLACE
é a contra parte para INSERT IGNORE
no tratamento de novas linhas contendo valores de chave únicos que duplicam linhas antigas: As novas linhas são usadas para substituir as linhas antigas em vez de descartá-las.