-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Tiago Zacchi wrote: > Ola, > > Tem como alterar o tipo de um capo que é chave em uma tabela ?? > > Por exemplo tenho uma tabela de cadastro de cidades com o campo > chave *CidCod numeric(6),* > gostaria de passar este campo para *integer. *So que este campo é chave > estrangeira em varias outras tabelas !!!
ALTER TABLE: http://www.postgresql.org/docs/8.2/interactive/sql-altertable.html Ex: test=# \d foo Tabela "public.foo" Coluna | Tipo | Modificadores - --------+--------------+--------------- id | numeric(6,0) | not null Índices: "foo_pkey" PRIMARY KEY, btree (id) test=# select * from foo; id - ---- 1 2 3 (3 registros) test=# \d bar Tabela "public.bar" Coluna | Tipo | Modificadores - --------+--------------+--------------- foo_id | numeric(6,0) | not null Restrições de chave estrangeira: "bar_foo_id_fkey" FOREIGN KEY (foo_id) REFERENCES foo(id) test=# alter table bar alter column foo_id type integer; ALTER TABLE test=# alter table foo alter column id type integer; ALTER TABLE test=# select * from bar; foo_id - -------- 2 3 (2 registros) Lembre-se de alterar primeiro o tipo da coluna nas FK e depois altere o tipo da PK. Se forem muitas tabelas, crie uma funcao que percorra todas elas, baseado no catalogo do pgsql, alterando o tipo da coluna. - -- wallace reis Núcleo de Biologia Computacional e Gestão de Informações Biotecnológicas/LABBI -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFF7bniLZIH+ybRHUMRAr0tAKDIgwRC3fcVRkPjvDnUwpVqJ79jTwCdH0BP lItIkqeweuYjmySiqp6/wsY= =apqe -----END PGP SIGNATURE----- _______________________________________________ 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
