segunda-feira, 6 de setembro de 2010

INSERT com SELECT no PostgreSQL

Veja como é fácil dar um INSERT para gravar os dados retornados por um SELECT no PostgreSQL.

Na sequência temos a estrutura das duas tabelas que iremos utilizar no exemplo, a primeira (usuario) é a tabela que vai receber o conteúdo do comando INSERT, e a segunda (cliente) é a tabela que vai fornecer os dados a serem gravados através do comando SELECT.

  1: CREATE TABLE usuario
  2: (
  3:   IDUsuario integer NOT NULL,
  4:   NomeUsuario character(30) NOT NULL,
  6: )
  7: WITHOUT OIDS;
  8: 
  9: CREATE TABLE cliente
 10: (
 11:   IDCliente integer NOT NULL,
 12:   NomeCliente character(30) NOT NULL
 13: )
 14: WITHOUT OIDS;


O comando a ser executado é o seguinte:



  1: --Deletar o conteúdo da tabela usuário para não ter duplicação do ID e para que evitemos erro no nosso teste
  2: DELETE FROM USUARIO;
  3: 
  4: --Comando de inclusão com o SELECT
  5: INSERT INTO usuario (IDUsuario,NomeUsuario)
  6: SELECT IDCliente,
  7:        NomeCliente 
  8:   FROM cliente 
  9:  WHERE ID <= 100 
 10:  ORDER BY IDCliente;


É isso ai… Bem simples!

2 comentários: