Olá pessoal..

estou com o sequinte problema:
eu defini uma sequencia para uma tabela e num dos campos da tabela eu usei a
clausula check para testar se o valor que vai para o campo é um valor
válido, o problema é que quando eu informo um valor inválido a minha
seqüência é incrementada, ou seja, quero que quando o valor para o campo na
clausula check seja invalido a minha sequencia não seja alterada, por
exmplo:

create sequence seq_teste start 1;

create table teste(campo1 int default nextval('seq_teste') not null,campo2
varchar(30) null check campo2='campo2');

após o insert correto

insert into teste(campo2) values ('campo2');

campo1 campo2
1           teste

agora se eu faco (insert errado):

insert into teste(campo2) values ('campo3');

e depois faco

insert into teste(campo2) values ('campo2');

campo1 campo2
1           teste
3           teste

e na verdade em vez do 3 o valor da sequencia tinha q ser 2 q seria o
proximo valor valido.

João Paulo.
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a