Introdução à instrução INSERT do PostgreSQL

instrução INSERT no PostgreSQL permite inserir uma nova linha em uma tabela.

O seguinte ilustra a sintaxe mais básica da instrução INSERT:

INSERT  INTO  table_name(column1, column2, …)
VALUES (value1, value2, …);

Nesta sintaxe:

  • Primeiro, especifique o nome da tabela ( table_name) na qual deseja inserir dados após as palavras - chave INSERT INTO e uma lista de colunas separadas por vírgulas ( colum1, column2, ....).
  • Segundo, forneça uma lista de valores separados por vírgulas entre parênteses (value1, value2, ...)após a palavra – chave VALUES. As colunas e os valores nas listas de colunas e valores devem estar na mesma ordem.

A instrução INSERT retorna uma tag de comando com o seguinte formato:

INSERT oid count

O OID é um identificador de objeto. O PostgreSQL usa o internamente OID como chave primária para suas tabelas de sistema. Normalmente, a instrução INSERT retorna OID com o valor 0. O count é o número de linhas que a instrução INSERT inseriu com êxito.

Cláusula RETURNING

A instrução INSERT também possui uma cláusula RETURNING opcional que retorna as informações da linha inserida.

Se você quiser retornar a linha inteira inserida, use um asterisco ( *) após a palavra-chave RETURNING:

 INSERT   INTO  table_name(column1, column2, …)
 VALUES  (value1, value2, …)
 RETURNING  *;

Se você deseja retornar apenas algumas informações da linha inserida, você pode especificar uma ou mais colunas após a cláusula RETURNING.

Por exemplo, a seguinte instrução retorna o idda linha inserida:

 INSERT   INTO  table_name(column1, column2, …)
 VALUES  (value1, value2, …)
 RETURNING   id ;

Para renomear o valor retornado, você usa a palavra-chave AS seguida pelo nome da saída. Por exemplo:

 INSERT   INTO  table_name(column1, column2, …)
 VALUES  (value1, value2, …)
 RETURNING  output_expression  AS  output_name;

Exemplos de instruções INSERT do PostgreSQL

A seguinte declaração cria uma nova tabela chamada links para a demonstração:

 DROP   TABLE   IF   EXISTS  links;

 CREATE   TABLE  links (
	 id  SERIAL PRIMARY  KEY ,
	 url  VARCHAR(255)  NOT  NULL,
	 name  VARCHAR(255)  NOT  NULL,
	description VARCHAR (255),
        last_update DATE
);

Observe que você aprenderá a criar uma nova tabela no tutorial subsequente. Neste tutorial, você só precisa executá-lo para criar uma nova tabela.

1) PostgreSQL INSERT – Inserindo uma única linha em uma tabela

A seguinte instrução insere uma nova linha na tabela links:

 INSERT   INTO  links ( url ,  name )
 VALUES ('https://www.postgresqltutorial.com','PostgreSQL Tutorial');

A instrução retorna a seguinte saída:

INSERT 0 1

Para inserir dados de caracteres , coloque-os entre aspas simples (‘), por exemplo 'PostgreSQL Tutorial'.

Se você omitir as colunas obrigatórias na instrução INSERT, o PostgreSQL emitirá um erro. Caso você omita uma coluna opcional, o PostgreSQL usará o valor padrão da coluna para inserir.

O PostgreSQL gera automaticamente um número sequencial para a coluna serial para que você não precise fornecer um valor para a coluna serial no comando INSERT.

A seguinte declaração SELECT mostra o conteúdo da tabela links:

 SELECT 	*  FROM  links;

2) PostgreSQL INSERT – Inserindo string de caracteres que contém aspas simples

Se você deseja inserir uma string que contém uma aspa simples ( '), como O'Reilly Media, você deve usar uma aspa simples adicional ( ') para escapar dela. Por exemplo:

 INSERT   INTO  links ( url ,  name )
 VALUES ('http://www.oreilly.com','O''Reilly Media');

Resultado:

INSERT 0 1

A seguinte declaração verifica a inserção:

3) PostgreSQL INSERT – Inserindo um valor de data

Para inserir um valor de data em uma coluna com o tipo DATE, você usa a data no formato 'YYYY-MM-DD'.

A instrução a seguir insere uma nova linha com uma data especificada na linkstabela:

 INSERT   INTO  links ( url ,  name , last_update)
 VALUES ('https://www.google.com','Google','2013-06-01');Linguagem de código:  SQL (Structured Query Language)  ( sql )

Resultado:

INSERT 0 1

4) PostgreSQL INSERT- Obtendo o último id de inserção

Para obter o último id de inserção da linha inserida, você usa a cláusula RETURNING da instrução INSERT.

Por exemplo, a instrução a seguir insere uma nova linha na tabela links e retorna o último id de inserção:

 INSERT   INTO  links ( url ,  name )
 VALUES ('http://www.postgresql.org','PostgreSQL') 
 RETURNING   id ;

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *