PostgreSQL, Utilizando o RETURNING

Nesse post eu gostaria de explorar um recurso muito interessante que surgio na verão 8.3 do PostgreSQL é a clausula RETURNING, ela é muito util quando se deseja obter um valor que foi persistido em um INSERT e o campo é auto incrementado ou modificado por uma TRIGGER.

Vejamos um exemplo simples, vamos criar uma tabela com 2 campos sendo um deles gerado automaticamente.

CREATE TABLE entidade (
    codigo bigserial NOT NULL,
    descricao character varying NOT NULL
);

ALTER TABLE ONLY entidade
    ADD CONSTRAINT entidade_pkey PRIMARY KEY (codigo);

Agora executaremos o INSERT .

INSERT INTO entidade(descricao) VALUES ('Descrição') RETURNING codigo;
Se for o primeiro registro da tabela retornará um registro com o campo código e o valor será 1.

Pode ser especificado mais de um campo, separando por virgula.

Espero ter sido util e até o próximo post.


Veja mais na documentação oficial aqui.


Publicado por

Sebastião Relson

Programador multi-versátil, técnico em Redes (2004) e Bacharel em Ciências da Computação (2008). Na Tribo do C.I. atua na retaguarda do site além da edição do podcast, com poucos textos publicados, veja mais no "quem somos" do site.