quarta-feira, 10 de agosto de 2011

POSTGRESQL Alterando o tipo da Coluna para SERIAL

No mySQL quando uma campo do tipo INT precisava ser alterado para ser auto numerado, simplesmente utilizamos o seguinte comando

ALTER TABLE minha_tabela CHANGE id_campo id_campo INT NOT NULL AUTO_INCREMENT;

Porem no PostgreSQL as coisas são um pouco diferentes, se fizermos exatamente como no mySQL, o comando não funciona, então abaixo mostro com fazer um campo se torna AUTO_INCREMENT (TIPO SERIAL) no PostgreSQL

CREATE SEQUENCE minha_tabela_coluna_seq;
SELECT setval('minha_tabela_coluna_seq', (SELECT MAX(minha_coluna) FROM minha_tabela));
ALTER TABLE minha_tabela ALTER COLUMN minha_coluna SET DEFAULT nextval('minha_tabela_column_seq');

É isso ai, caso tenha alguma dificuldade ou sugestão é só comentar o post.
Até a próxima.

2 comentários:

  1. Muito Útil... Utilizei Para Postgre

    ResponderExcluir
  2. PARABENS PELO POST, MUITO UTIL, SO RETIFICA A VARIÁVEL DENTRO DO ERRADA:NEXTVAL('minha_tabela_column_seq')
    CORRETA:NEXTVAL('minha_tabela_coluna_seq')
    SÓ ISSO MESMO.

    ResponderExcluir