Em 11-02-2013 07:16, Luiz Rafael Culik escreveu:
Ola Fabiano

qual o comando que vc criou essa tabela?
pois para criar um tipo autoincremento eu uso assim

create table minhatabela (aluno varchar(50) not null , id_aluno bigserial PRIMARY KEY , data_nasc date);
Cara, na realidade a tabela já havia sido criada, entende? O que eu queria era acrescentar uma nova coluna com a propriedade de auto incremento. Eu fiz pelo PGAdmin e sabe Deus o comando que ele usou pra fazer isso, hehehehhe... Mas agora que você postou o comando pra mim eu vou AGORA anotar pra não esquecer mais! Obrigadim!!!

Bom feriado!

[]s
Lui\

Em 10 de fevereiro de 2013 15:01, Fabiano Listas <[email protected] <mailto:[email protected]>> escreveu:

    Bom dia, colegas!

    Considerem a seguinte situação: eu criei um BD chamado "escola" e uma
    tabela chamada "alunos". Na tabela "alunos", criei as seguintes
    colunas,
    nesta ordem: aluno (varchar), id_aluno (int) e data_nasc (date). Setei
    "aluno" como sendo NOT NULL e "id_aluno" como sendo NOT NULL e "auto
    increment" (serial).
    Na hora de dar um "INSERT INTO alunos VALUE (etc, etc, etc);",
    obviamente não será preciso que seja inserido o campo "id_aluno",
    pois o
    próprio SGBD cuida disso pra mim. Acontece que eu não sabia como
    deveria
    proceder. Pra mim, o fato de digitar: "INSERT INTO alunos VALUE ('José
    dos Anzóis Furados', 26/09/2003)" já fazia com que o SGBD entendesse o
    que deveria ser feito. Porém, na hora de dar um "select * from" na
    tabela vi que o campo "data_nasc" estava vazio e o "id_aluno" estava
    "-2008"! Tudo bem, então, vamos consertar o prejuízo manualmente:
    dei um
    UPDATE e setei o campo "id_aluno" como deveria estar! Porém, ao tentar
    inserir outro aluno (somente com o nome do aluno e mais nada) o SGDB
    reclamou:

    escola=# INSERT INTO alunos VALUES ('José Bibiano Trigueiro');
    ERROR:  duplicate key value violates unique constraint "alunos_pkey"
    DETAIL:  Key (id_aluno)=(1) already exists.

    Diante disto eu pergunto:

    1. Como "pular" o id_aluno na hora de inserir dados na tabela?
    2. Como consertar esse erro para que ele volte a inserir os dados
    corretos na tabela, já que ele vai tentar inserir a chave inteira
    1 sem
    sucesso sempre? Ou seja, se uma coluna é auto increment e mesmo assim
    for setado um valor para ela "na marra", na próxima iteração o
    SGDB vai
    querer usar o valor que foi setado na marra e ele vai reclamar. O
    que fazer?
    3. Há ainda uma pergunta que não tem nada a ver com a situação acima:
    como inserir uma coluna "status" como sendo do tipo bit? Tentei
    fazê-lo
    com o comando "UPDATE alunos ADD COLUMN status bit;" e ele me
    retornou a
    seguinte mensagem:

    ERROR:  syntax error at or near "COLUMN"
    LINE 1: UPDATE alunos ADD COLUMN status bit;

    No caso da pergunta 1, alguém poderia dizer: "Ah! isso é fácil! É só
    digitar 'INSERT INTO alunos (aluno, data_nasc) VALUE (etc, etc,
    etc);'"
    Mas se a tabela tiver 50 colunas? Vou ter que digitar TODAS as colunas
    menos a que eu não quero, todas as vezes que eu for inserir algum dado
    na tabela? Ex: "INSERT INTO alunos (aluno, data_nasc, pai, mae, serie,
    turno, turma, professora, status, etc, etc, etc, etc, etc, etc, etc,
    etc...) VALUE (etc, etc, etc...);"

    De já, agradeço a ajuda!
    Grande abraço a todos!
    _______________________________________________
    pgbr-geral mailing list
    [email protected]
    <mailto:[email protected]>
    https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a