[firebase-br] Erro estranho entre PK e FK

Marcelo Siqueira marcelo em bredas.com.br
Seg Fev 14 12:39:41 -03 2005


Estou aqui com um problema bem estranho.

A algum tempo, um programador no meu time de desenvolvimento cometeu um 
erro e criou um campo que era ao mesmo tempo uma chave primaria e uma 
chave secundaria fazendo referencia *a propria tabela*.

A definição ficou assim:

ALTER TABLE PRODUTOS ADD PRIMARY KEY (COD_PRODUTO);

ALTER TABLE PRODUTOS ADD CONSTRAINT FK_PRODUTO_REQUIS FOREIGN KEY 
(COD_PRODUTO) REFERENCES PRODUTOS (COD_PRODUTO) ON DELETE NO ACTION ON 
UPDATE CASCADE;

Eu vi e erro e apaguei a constraint da chave secundaria errada, essa 
FK_PRODUTO_REQUIS. Até ai tudo bem. Mas agora quando vou em outra tabela 
e tento criar uma chave secundaria que faça referencia a chave primaria 
da tabela PRODUTOS eu recebo um erro:

SQL:
ALTER TABLE ITEM_PRODUTOS ADD CONSTRAINT FK_ITEM_PRODUTOS FOREIGN KEY 
(COD_PRODUTO) REFERENCES PRODUTOS (COD_PRODUTO) ON DELETE NO ACTION ON 
UPDATE CASCADE;

Erro:
Cannot commit transaction:
violation of FOREIGN KEY constraint "".
violation of FOREIGN KEY constraint "INTEG_865" on table "PRODUTOS".

Sendo que essa constraint INTEG_865 é a constraint que define a chave 
primaria da tabela PRODUTOS.

Alguem sabe como posso corrigir o meu banco para que eu possa criar uma 
chave secundaria que faça referencia a chave primaria da tabela PRODUTOS?

Obrigado pela ajuda!

Marcelo Siqueira





Mais detalhes sobre a lista de discussão lista