[Dúvida] Como criar um gatilho para o pk auto-incrementar (postgres)

2 respostas
J

Olá pessoal,

Eu queria uma maneira do meu campo PK auto-incrementar via uma trigger (gatilho) ou outro recurso no próprio banco de dados (postgres).
Obrigado antecipadamente.

2 Respostas

rodrigopmatias

Aconselho usar seqüencias, acredito que vc venha do oracle, veja o PostgreSQL é um banco muito mais completo que este ultimo veja sua documentação:

http://pgdocptbr.sourceforge.net/pg80/index.html
[tradução pt-br da doc oficial]

http://pgdocptbr.sourceforge.net/pg80/ddl-default.html
[Fala dos valores default]

http://pgdocptbr.sourceforge.net/pg80/functions-sequence.html
[Funções de manipulação de seqüencia]

http://pgdocptbr.sourceforge.net/pg80/sql-createsequence.html
[Criação manual de seqüencias]

CREATE TABLE contatos( codigo bigserial primary key, nome varchar(32) not null, fone char(10), email varchar(64) );
A versão da documentação é 8.0 mas ele serve muito bem para a versão atual, claro que as particularidades das novas versões não estarão nela, mas ai tem a documentação oficial que pode ser encontrada na www.postgresql.org

E

Primeiro vc tem que criar uma Sequence

por exemplo:

CREATE SEQUENCE “public”."seqnome"
INCREMENT 1 MINVALUE 1
MAXVALUE 9223372036854775807 START 1
CACHE 1;

Depois na tabela vc tem que adicionar ao valor padrao :

nextval(‘public.seqnome’::text)

Criado 22 de agosto de 2008
Ultima resposta 22 de ago. de 2008
Respostas 2
Participantes 3