ERROR: update or delete on table "conta" violates foreign key constraint "motivo_conta_fkey" on

4 respostas
W

Tenho uma tabela onde preencho com dados de uma conta e esta tabela esta ligada a uma outra de motivos de conta.
uma rotina precisa alterar uma coluna tabela de conta, mas dá erro por estar ligada à de motivo de conta, mas preciso mesmo alterar essa coluna.
O erro que dá é:

org.postgresql.util.PSQLException: ERROR: update or delete on table "conta" violates foreign key constraint "motivo_conta_fkey" on table "motivo" Detalhe: Key (id)=(1884) is still referenced from table "motivo".

4 Respostas

Hebert_Coelho

Apaga o dado da outra tabela antes de mexer na tabela principal.

W

Pensei nisso, mas na verdade não posso perder os dados dessa outra tabela também.

Hebert_Coelho

Pensei nisso, mas na verdade não posso perder os dados dessa outra tabela também.Então você precisa entender o conceito de chave estrangeira.

Você poderia desativar a chave estrangeira ou criar uma tabela para ficar no meio do caminho. Seria tipo
tabela_carro
tabela_pessoa_tem_carro
tabela_pessoa

As chaves ficariam dentro da tabela do meio. A tabela do meio teria apenas id_pessoa e id_carro.

W

às vezes somos traídos pelas facilidades da programação, mas temos que lembrar da robustez do banco.
está correto, só posso resolver isso repensando o banco.

Sua solução de tabela intermediária é interessante.

Obrigado.

Criado 23 de agosto de 2012
Ultima resposta 23 de ago. de 2012
Respostas 4
Participantes 2