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 ... SELECToperava implicitamente em modoIGNORE. A partir do MariaDB 4.0.1, você deve especificarIGNOREexplicitamente para ignorar registros que causaria violação de chave duplicada. - Antes do MariaDB 4.0.14, a tabela alvo da instrução
INSERTnão pode aparecer na cláusulaFROMda parteSELECTda consulta. Esta limitação é deixada na versão 4.0.14. - Colunas
AUTO_INCREMENTfuncionam 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.