Auto incremental
10/01/2005
0
Bom pessoal
Sou novato e gostaria de saber como faço para ter um campo auto incremental neste DB, estive pesquisando no forum e achei algumas coisa para interbase que teria usar trigger. No psql é a mesma coisa...
Sidnei
Sou novato e gostaria de saber como faço para ter um campo auto incremental neste DB, estive pesquisando no forum e achei algumas coisa para interbase que teria usar trigger. No psql é a mesma coisa...
Sidnei
Sbrianti
Curtir tópico
+ 0
Responder
Posts
11/01/2005
Bon Jovi
Como no Oracle, vc pode usar SEQUENCE. Exemplo:
CREATE TABLE cliente (id_cliente numeric(15) primary key, nome_cliente varchar(50));
[b:d0b898c419]CREATE SEQUENCE[/b:d0b898c419] sequencial_cliente MINVALUE 1;
INSERT INTO cliente (id_cliente, nome_cliente) VALUES ([b:d0b898c419]nextval(´sequencial_cliente´)[/b:d0b898c419], ´testeA´);
INSERT INTO cliente (id_cliente, nome_cliente) VALUES ([b:d0b898c419]nextval(´sequencial_cliente´)[/b:d0b898c419], ´testeB´);
INSERT INTO cliente (id_cliente, nome_cliente) VALUES ([b:d0b898c419]nextval(´sequencial_cliente´)[/b:d0b898c419], ´testeC´);
SELECT * FROM cliente;
--ou: SELECT nextval(´sequencial_cliente´) as NOVO_ID; pra qdo for o caso de querer pegar o valor antes.
Dê uma olhada na documentação pra mais detalhes: http://www.postgresql.org.
Sobre setar via trigger não acho legal, é mais costume do pessoal do firebird.
[b:d0b898c419][/b:d0b898c419]
CREATE TABLE cliente (id_cliente numeric(15) primary key, nome_cliente varchar(50));
[b:d0b898c419]CREATE SEQUENCE[/b:d0b898c419] sequencial_cliente MINVALUE 1;
INSERT INTO cliente (id_cliente, nome_cliente) VALUES ([b:d0b898c419]nextval(´sequencial_cliente´)[/b:d0b898c419], ´testeA´);
INSERT INTO cliente (id_cliente, nome_cliente) VALUES ([b:d0b898c419]nextval(´sequencial_cliente´)[/b:d0b898c419], ´testeB´);
INSERT INTO cliente (id_cliente, nome_cliente) VALUES ([b:d0b898c419]nextval(´sequencial_cliente´)[/b:d0b898c419], ´testeC´);
SELECT * FROM cliente;
--ou: SELECT nextval(´sequencial_cliente´) as NOVO_ID; pra qdo for o caso de querer pegar o valor antes.
Dê uma olhada na documentação pra mais detalhes: http://www.postgresql.org.
Sobre setar via trigger não acho legal, é mais costume do pessoal do firebird.
[b:d0b898c419][/b:d0b898c419]
Responder
Clique aqui para fazer login e interagir na Comunidade :)