Trocar tipos de dados

Firebird

07/08/2003

1. tenho uma tabela A que tem a chave primaria do tipo varchar.
preciso trocar o tipo da chave primaria para integer.

2. tabela B chave primaria varchar, trocar para integer. só que tem uma foreign key que é a chave primaria da tabela A que é varchar e preciso trocar para integer.

3. tabela C, tem duas foreign key que são a chave primaria de A e B.

como faço isso?

[]´s

Paulo.


Paulo Bonfim

Paulo Bonfim

Curtidas 0

Respostas

Afarias

Afarias

07/08/2003

se vc puder, apenas drop tudo e crie novamente... :-)


Agora se é um banco ´em produção´ hum..... acho q vc pode seguir os segintes passos:

1 - certifíque-se q todos os valores podem ser convertidos para INTEGER

2 - drope todas as foreign keys e primary keys

alter table nome_tabela drop constraint nome_constraint;

3 - renomei os campos para um outro nome tipo CODIGO -> CODIGO_1

alter table nome_tabela alter nome_campo to nome_campo_1

4 - crie os campos como integer

alter table nome_tabela add nome_campo integer not null;

5 - insira os valores dos campos varchar nos campos integer

update nome_tabela set nome_campo = cast(nome_campo_1 as integer);

6 - crie novamente as foreign keys e primary keys

alter table nome_tabela add constraint ... ;

7 - drope os campos varchar

alter table nome_tabela drop nome_campo_1;



Uma boa lida no SQL REFERENCE que acompanha o Interbase é de boa ajuda, principalmente no comando ALTER TABLE.


T+


GOSTEI 0
Paulo Bonfim

Paulo Bonfim

07/08/2003

se vc puder, apenas drop tudo e crie novamente... :-) Agora se é um banco ´em produção´ hum..... acho q vc pode seguir os segintes passos: 1 - certifíque-se q todos os valores podem ser convertidos para INTEGER 2 - drope todas as foreign keys e primary keys alter table nome_tabela drop constraint nome_constraint; 3 - renomei os campos para um outro nome tipo CODIGO -> CODIGO_1 alter table nome_tabela alter nome_campo to nome_campo_1 4 - crie os campos como integer alter table nome_tabela add nome_campo integer not null; 5 - insira os valores dos campos varchar nos campos integer update nome_tabela set nome_campo = cast(nome_campo_1 as integer); 6 - crie novamente as foreign keys e primary keys alter table nome_tabela add constraint ... ; 7 - drope os campos varchar alter table nome_tabela drop nome_campo_1; Uma boa lida no SQL REFERENCE que acompanha o Interbase é de boa ajuda, principalmente no comando ALTER TABLE. T+



Obrigado, resolveu a situação.

em relação ao SQL reference o do meu computador está com problema

consigo ver os caracteres que estão em negrito, mas os outros não consigo lê

[]´s

Paulo.


GOSTEI 0
Afarias

Afarias

07/08/2003

|consigo ver os caracteres que estão em negrito, mas os outros não
|consigo lê

Coisa estranha! Isso acontece com qualquer HLP??

Baixe também a documentação do IB 6.0 -- vc tem o SQL Reference tb nas versão HTML:

http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_download#DOCS


T+


GOSTEI 0
POSTAR