-----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

Responder a