| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/11/2010 23:48:21
|
ataufo
Java Ninja
![[Avatar]](/images/avatar/14a31775d302b5e0e25caa93b6d95ff5.jpg)
Membro desde: 21/03/2009 12:15:23
Mensagens: 267
Offline
|
Pessoal,
não sei se é uma coisa simples. Porém eu tenho uma tabela que possui um auto relacionamento, e quando tento usar o comando delete ocorre erro de check constraint.
Banco: PostgreSQL
Segue a tabela abaixo:
Dados:
Comando executado:
delete from t06_ator where projeto = 1
Erro:
ERROR: update or delete on table "t06_ator" violates foreign key constraint "id_gen_identificador_fk" on table "t06_ator"
Solução:
Procuro algum jeito de realizar o delete em cascata, para não ocorrer o erro de deletar os registros pais antes dos filhos...
Alguem me ajuda ??
|
Victor Soares
ataufo@gmail.com |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/11/2010 01:38:49
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
Troque o ON DELETE NO ACTION por ON DELETE CASCADE onde for necessário.
Ou delete a tabela de referência antes (eu prefiro fazer manualmente, justamente para evitar o risco de uma cagada destruir metade do BD).
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/11/2010 13:19:17
|
ataufo
Java Ninja
![[Avatar]](/images/avatar/14a31775d302b5e0e25caa93b6d95ff5.jpg)
Membro desde: 21/03/2009 12:15:23
Mensagens: 267
Offline
|
Obrigado pela resposta,
mas eu já botei ON DELETE CASCADE nas duas FKs existentes e não funcionou. tipo assim:
Ficou faltando alguma coisa?
Vc disse:
Ou delete a tabela de referência antes
O problema é que a tabela de referência é a mesma, por ser um auto relacionamento. Então nesse caso eu não tenho como prever se um registro está relacionado a outro ou a vários.
|
Victor Soares
ataufo@gmail.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/11/2010 15:36:33
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
Eu tenho algo parecido no meu banco. Acabei colocando o servidor de aplicação para fazer a recursão e achar os ids que deveriam ser deletados anteriormente.
No SQL-Server, existe uma cláusula chamada WITH, que permite essa exclusão em árvore. No Postgre não sei te dizer se existe algo similar.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/11/2010 15:46:14
|
ataufo
Java Ninja
![[Avatar]](/images/avatar/14a31775d302b5e0e25caa93b6d95ff5.jpg)
Membro desde: 21/03/2009 12:15:23
Mensagens: 267
Offline
|
tem esse algoritimo de recursão ai ??
|
Victor Soares
ataufo@gmail.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/11/2010 15:47:01
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
Não, fiz no trabalho, ficou na empresa. E é em C#, não em Java. Usando as classes de negócio.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/11/2010 16:36:49
|
ataufo
Java Ninja
![[Avatar]](/images/avatar/14a31775d302b5e0e25caa93b6d95ff5.jpg)
Membro desde: 21/03/2009 12:15:23
Mensagens: 267
Offline
|
humm vou ter que me virar aqui então. Obrigado.
|
Victor Soares
ataufo@gmail.com |
|
|
 |
|
|