Acrescentar campo na chave primaria

Firebird

20/11/2003

Tenho uma table em interbase, cuja chave primaria é o campo ´NOMEALUNO´. Preciso acrescentar também como chave primaria o campo ´CODALUNO´. A tabela já tem dados, e nao posso perde-los.

como fazer ?

obrigado

edeson


Edeson

Edeson

Curtidas 0

Respostas

Afarias

Afarias

20/11/2003

Edeson,

veja, o campo NOME não é uma boa escolha para chave primária -- pessoas diferentes podem ter o mesmo nome correto? -- no mais, é algo difícil de se manter controle.

vc tb não pode (na verdade não deve) ´adicionar´ um novo campo (codigo) na chave -- vai ficar sem sentido, além d que não é uma boa prática chaves compostas (é no mínimo mais difícil trabalhar com elas).

o que vc deve fazer ai é DROPAR sua chave primária e tornar CODIGO (e somente ele) sua nova chave -- não haverá problemas para fazer isso, mesmo já possuindo dados.

ALTER TABLE sua_tabela DROP CONSTRAINT nome_da_chave_primaria;

e depois::

ALTER TABLE sua_tabela ADD CONSTRAINT nome_chave_primaria
PRIMARY KEY (campo_codigo);


note apenas q, se houver qualquer chave estrangeira referenciando esta tabela, esta deverá ser ´dropada´ tb antes de prosseguir com a operação acima.


T+


GOSTEI 0
POSTAR