Ola pessoal,
Gostaria de saber se da pra fazer um ALTER TABLE(de uma tabela já populada) que permita que uma das minhas colunas fique como SERIAL?
[]s
Ola pessoal,
Gostaria de saber se da pra fazer um ALTER TABLE(de uma tabela já populada) que permita que uma das minhas colunas fique como SERIAL?
[]s
Gente não sei se ficou claro, mas vejam esse exemplo em MySQL.
ALTER TABLE lista_projetos
CHANGE COLUMN numero id_proj INT NOT NULL AUTO_INCREMENT,
ADD PRIMARY KEY ('id_proj')
esse comando vai alterar a coluna ‘numero’ para ‘id_proj’ e vai deixa-lá como AUTO_INCREMENT e também como PRIMARY KEY ao mesmo tempo.
Essa tabela ja esta populada com inteiros na coluna ‘numero’ que agora se chama ‘id_proj’.
Agora, eu queria fazer esse comando para o PostgreSQL se é possível.
Cara, não sei de se dá para alterar para esse tipo de dado.
No postgresql tem um tipo de dado chamado serial, que eu utilizo na criação das com increment. Porém, esse tipo de dado, é utilizado apenas na criação da tabela, depois de criado você não consegue mais utilizá-lo. (não que eu saiba, estou aberto a aprendizado).
O que você pode fazer é criar uma sequencia e depois dizer que sua coluna vai seguir aquela sequencia criada.
Mais ou menos isso:
CREATE SEQUENCE tabela_coluna_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1 //ficar atento nessa linha, colocar o último id da sua coluna
CACHE 1;
ALTER TABLE tabela_coluna_seq
OWNER TO postgres;
Agora, faça dessa maneira:
Faça um teste e diga se funcionou…
Acho que foi isso que você quis dizer, se não foi, desconsiderar o post.
É isso mesmo, funciona 100%.
ficou assim, e já estou adicionando a minha Primary Key.
CREATE SEQUENCE tabela_coluna_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 5 --ficar atento nessa linha, colocar o último id da sua coluna
CACHE 1;
ALTER TABLE tabela_coluna_seq
OWNER TO postgres
ALTER TABLE lista_projetos ALTER COLUMN id_proj SET DEFAULT nextval('tabela_coluna_seq'::regclass), ADD CONSTRAINT pk_proj PRIMARY KEY(id_proj);
Vlw mano.
[quote=javahunter]É isso mesmo, funciona 100%.
ficou assim, e já estou adicionando a minha Primary Key.
CREATE SEQUENCE tabela_coluna_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 5 --ficar atento nessa linha, colocar o último id da sua coluna
CACHE 1;
ALTER TABLE tabela_coluna_seq
OWNER TO postgres
ALTER TABLE lista_projetos ALTER COLUMN id_proj SET DEFAULT nextval('tabela_coluna_seq'::regclass), ADD CONSTRAINT pk_proj PRIMARY KEY(id_proj);
Vlw mano.[/quote]
Boa garoto
Coloque o tópico como resolvido.