Adicionar Chave primária

Firebird

17/09/2003

Galera eu to com um problema que não consigo resolver.

Eu tenho uma tabela com uns 2000 registros, eu tive que adicionar um campo nesta tabela, e tenho que colocar este campo também como chave primária. Só que não funciona, dá erro de várias coisas. Me disseram que eu só consigo alterar a chave primária se eu zerar a tabela.

Alguém pode me ajudar??????


Isac

Isac

Curtidas 0

Respostas

Afarias

Afarias

17/09/2003

para transformar um novo campo em chave primária, é necessário ::

1 - o campo ser NOT NULL
2 - o campo estar preenchido por valores ÚNICOS (não haver duplicação)
3 - a tabela não ter uma outra chave primária



T+


GOSTEI 0
Isac

Isac

17/09/2003

para transformar um novo campo em chave primária, é necessário :: 1 - o campo ser NOT NULL 2 - o campo estar preenchido por valores ÚNICOS (não haver duplicação) 3 - a tabela não ter uma outra chave primária T+


Me perdoe a ignorância, mas se a tabela não pode ter outra chave primária, como eu posso fazer uma chave composta então?
Eu preciso que a tabela tenha 3 chaves primárias. Eu so preciso adicionar mais um campo nela agora.


GOSTEI 0
Dalpogetto

Dalpogetto

17/09/2003

Meu fio faiz o seguinte:
- Gera o metafile com o conteudo da tabela
- Dropeie a tabela
- Crie a nova estrutura com os campos chaves necessarios
- Rode o metafile gerado pelo Interbase

Fui


GOSTEI 0
Isac

Isac

17/09/2003

Meu fio faiz o seguinte: - Gera o metafile com o conteudo da tabela - Dropeie a tabela - Crie a nova estrutura com os campos chaves necessarios - Rode o metafile gerado pelo Interbase Fui


Se eu pudesse utilizar essa solução blz..., mas o banco onde eu tenho que fazer a alteração, já está sendo utilizado e em produção. Eu não posso fazer isso. Eu sei qué é possível fazer a alteração, mas tá difícil.

Eu já tentei de tudo, removi as chaves primarias e tentei criar novamente, removi indices, constraints .... fiz um montão de coisas, mas não funcionou.

Eu peço pelo amor de Deus a ajuda de vocês.............

Muito obrigado!!!!


GOSTEI 0
Afarias

Afarias

17/09/2003

|Me perdoe a ignorância, mas se a tabela não pode ter outra chave
|primária, como eu posso fazer uma chave composta então? {...}

Em bancos de dados relacionais, cada entidade (tabela) pode ter 1 e apenas 1 chave primária.

Entretanto, esta chave primária pode ser composta por diversos campos (o q em geral não é uma boa prática no nível de implementação).

Se vc deseja criar uma chave primária composta (na verdade, pelo q entendi, adicionar um novo campo a chave primária já existente) ::

1 - ´drope´ a chave primária existente (se existirem chaves estrangeiras em outras tabelas, estas tb terão q ser ´dropadas´ antes)

alter table nome_tabela drop constraint nome_constraint;

2 - cria novamente a chave primária, incluindo o novo campo

alter table nome_tabela add constraint nome_constraint primary key (lista_de_campos);


T+


GOSTEI 0
POSTAR