Olá pessoal, estou de volta com mais uma quick tip. Hoje vamos falar do comando Insert Select do Firebird. Ele nos permite inserir dados em uma tabela a partir do resultado de uma consulta.
A sintaxe é simples:
INSERT into [NOME_TABELA_INSERCAO] (campos)
SELECT [Campos] FROM [NOME_TABELA_CONSULTA]
No exemplo a seguir, temos a seguinte situação:
- Tabela USUARIO – Armazena os usuários do nosso sistema;
- Tabela ACESSO – Armazena os acessos do nosso sistema;
- Tabela ACESSO_USUARIO – Armazena os acessos que cada usuário do nosso sistema possui;
Imagine agora que o acesso com ID 3 (Cadastrar Vendedores) foi recém criado e por default temos que fornecer dar ele a todos os usuários do sistema.
Vamos utilizar então o INSERT SELECT para isso:
INSERT into ACESSO_USUARIO (ID_ACESSO, ID_USUARIOS)
SELECT 3, ID FROM USUARIO
Como resultado deste script, temos os seguintes dados na tabela ACESSO_USUARIO: