Amigos,
Tive o seguinte problema:
Criei uma chave de unicidade numa tabela, quando ela recebe um INSERT
estava ocasionando um violação dessa constraint,
mas o valor que ocasionou a violação não se encontra na tabela.
Contraint:
ALTER TABLE senda.ind_03_03_02_02_a1
ADD CONSTRAINT ind_03_03_02_02_a1_id_movimento_ukey UNIQUE(id_movimento);
Criei uma trigger no BEFORE INSERT a cada ROW fazendo um RETURN NULL ,
caso o valor já exista na tabela.
CREATE TRIGGER movimentos_baixa_bfr
BEFORE INSERT
ON senda.ind_03_03_02_02_a1
FOR EACH ROW
EXECUTE PROCEDURE senda.movimentos_baixa();
Na função trigger :
...
IF EXISTS(SELECT a.id FROM senda.ind_03_03_02_02_a1 a WHERE
a.id_movimento = NEW.id_movimento) THEN
RETURN NULL;
END IF; ...
Continou a disparar a contraint.
Removi a chave de unicidade para ver o estava sendo incluído.
Para minha surpresa, não foi incluido nenhum valor duplicado.
Alguém já vivenciou essa situação?
--
Irineu Raymundo
Programador/Consultor Técnico
Senda Engenharia de Dados Ltda.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral