[firebase-br] Erro estranho entre PK e FK

Eliomar eliomar em promediconet.com.br
Qua Fev 16 08:07:02 -03 2005


a mensagem esta dizendo que a table esta em uso
ninguém pode estar conectado no banco de dados.

Agradecido.
Eliomar,
ICQ - 167715482
Soft-Data Softwares Administrativos
hptt://www.promediconet.com.br


------------- Segue mensagem original! -------------

De: Marcelo Siqueira <marcelo em bredas.com.br>
Data: Mon, 14 Feb 2005 16:11:07 -0300
Para: FireBase <lista em firebase.com.br>
Assunto: Re: [firebase-br] Erro estranho entre PK e FK

Oi Ricardo,

Não, no meu caso foi um erro mesmo, não existia a intenção de se criar 
uma PK e uma FK no mesmo campo.

Agora a pouco eu copiei o metadata data completo para um banco limpo e 
tentei de novo criar a minha FK:

ALTER TABLE ITEM_PRODUTOS ADD
FOREIGN KEY (COD_PRODUTO) REFERENCES PRODUTOS (COD_PRODUTO)
ON UPDATE CASCADE

E agora recebo esse outro erro:

Cannot commit transaction:
This operation is not defined for system tables.
unsuccessful metadata update.
object PRODUTOS is in use .

Não entendo porque não consigo criar essa chave estrangeira.

Marcelo Siqueira



ricardo em vsiinformatica.com.br wrote:
>        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
>>
>>
>>______________________________________________
>>FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>>Para editar sua configuração na lista, use o endereço
>>http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>
> 
> 
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> 
> 


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br







Mais detalhes sobre a lista de discussão lista