[EMAIL PROTECTED] escreveu:

> Amigos, tenho um problema com campos de incremento, utilizei o nextval para 
> atribuir ao ID números sequenciais, mas qdo tento gravar pelo meu sistema, 
> por o ID ser campo primário, gera-se portanto uma exceção avisando que não é 
> aceito valor nulo.
> 
Não entendi. Porque complicar se você pode fazer assim:


bash-3.00$ psql -U postgres regression
Bem vindo ao psql 8.1.4, o terminal iterativo do PostgreSQL.

Digite:  \copyright para mostrar termos de distribuição
         \h para ajuda com comandos SQL
         \? para ajuda com comandos do psql
         \g ou terminar com ponto-e-vírgula para executar a consulta
         \q para sair

regression=# create table foo (a serial, b varchar(10), primary key(a));
NOTA:  CREATE TABLE criar? sequ?ncia impl?cita "foo_a_seq" para coluna serial 
"foo.a"
NOTA:  CREATE TABLE / PRIMARY KEY criar? ?ndice impl?cito "foo_pkey" na tabela 
"foo"
CREATE TABLE
regression=# insert into foo (b) values('foo');
INSERT 0 1
regression=# insert into foo (b) values(null);
INSERT 0 1
regression=# insert into foo (b) values('bar');
INSERT 0 1
regression=# select * from foo;
 a |  b  
---+-----
 1 | foo
 2 | 
 3 | bar
(3 registros)

regression=# 


Você não precisa especificar a coluna 'serial' ao inserir ele faz isso
automaticamente por causa da cláusula 'default'.


-- 
  Euler Taveira de Oliveira
  http://www.timbira.com/

_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
http://www.postgresql.org.br

Responder a