RES: [firebase-br] Erro estranho entre PK e FK

Mauricio Torres Fernandes mtfernandes em pop.com.br
Seg Fev 14 16:39:08 -03 2005


Eu utilizo algo semelhante, em uma relação Pai-Filho, onde um registro da
tabela é pai de outro registro da mesma tabela, e não tenho problemas.

Mauricio 

> -----Mensagem original-----
> De: lista-bounces em firebase.com.br 
> [mailto:lista-bounces em firebase.com.br] Em nome de 
> ricardo em vsiinformatica.com.br
> Enviada em: segunda-feira, 14 de fevereiro de 2005 14:32
> Para: FireBase
> Assunto: Re: [firebase-br] Erro estranho entre PK e FK
> 
>        Olá Marcelo, eu não sei qual é a solução do seu 
> problema, mas tem certeza que o fato de ser PF e FK não foi 
> intencional ???
> 
>        Eu já precisei fazer isso ... por mais estranho que 
> pareça, foi a melhor solução que achei. No caso a tabela era 
> de PESSOAS. Nesta tabela tinha um campo "Código_Fornecedor" 
> ... sendo fornecedor um tipo de pessoa, a PK da tabela também 
> precisava ser FK da mesma.
> 
>        Não sei se é comum, errado ou tem solução melhor, mas 
> foi algo que resolveu um possível problema de integridade e 
> até hoje não deu problemas !!!!
> 
> 
> []'s
> 
> Ricardo Rocha
> www.mundodemerlin.pro.br
> 
> 
> 
> 
> > 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