Adicionar Chave primária
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??????
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
Curtidas 0
Respostas
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+
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
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
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
- 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
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
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+
|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