| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sex Dez 15, 2017 8:12 am Assunto: Criar uma trigger para excluir dados postgres? |
|
|
Tenho um banco de dados postgres com relacionamento entre tabelas.
Recebo um arquivo de outro banco para replicar na minha base, o problema que este arquivo tem dados não relacionados entre tabelas deixando alguns arquivos órfão.
Exemplo
Tabela produto tenho o ID pk(500) Produto Tal
Tabela grade tenho i ID_Produto (fk(500) relacionado com produto.
Ai la no outro banco alguém excluiu este produto 500, como não tem relacionamento DELETE EM CASCATA a tabela grade fica com esta informação órfã.
Quando for replicar isso na minha base que faz esta tratativa vai dar erro e para de gravar por falta do relacionamento entre tabelas.
| Código: | ALTER TABLE grade ADD CONSTRAINT id_produto_fk FOREIGN KEY (id_produto)
REFERENCES produto(id) ON DELETE cascade ON UPDATE cascade; |
A minha ideia seria uma trigger que dispara na tabela grade e exclui estes arquivos órfãos quando não tiver mais na tabela produto antes de tratar a constrant.
Ou algo que possa fazer isso.
Não posso mexer no modo que vem do outro banco, apenas preciso ver se consigo tratar isso antes de gravar no meu banco.
Tem como? _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
| Voltar ao Topo |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Seg Dez 18, 2017 3:16 pm Assunto: |
|
|
Faça um teste trocando Left Join por Inner Join. _________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Seg Dez 18, 2017 3:25 pm Assunto: |
|
|
| natanbh1 escreveu: | | Faça um teste trocando Left Join por Inner Join. | Com inner join só traz perfume de gardenia
A tabela fornecedor tem estes itens
| Citação: | 405763;"''";"TESTE REFERENCIA"
407683;"''";"PERFUME DE GARDENIA"
409999;"''";"NOVO PRODUTO" |
Se reparar não tenho este ID_fornecedor 40600 não existe mais na tabela fornecedor, mais esta ai na tabela produto, preciso fazer um select eliminando ele do select, mais mantendo os que tem id_produto is null no select. _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
| Voltar ao Topo |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
| Voltar ao Topo |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Seg Dez 18, 2017 4:37 pm Assunto: |
|
|
Faça um teste com a SQL abaixo:
| Código: | select PRODUTO.ID_FORNECEDOR, FORNECEDOR_FANTASIA, PRODUTO.* FROM PRODUTO, FORNECDOR
Where PRODUTO.ID_FORNECEDOR = FORNECEDOR.ID OR FORNECEDOR.ID IS NULL |
_________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
| Voltar ao Topo |
|
 |
|