ola senhores
tenho um campo em uma tabela

fiz um exemplo simples onde quero informar a valor de um campo pela trigger
INSERT BEFORE  antes de gravar os dados... so que como o campo é um not
null  <FK>

quando tento gravar por uma outra função ele mostra o erro que é um campo
NULL e não deixa gravar !!!

*o postgres não permite mesmo isso, tem que ter o valor de qualquer maneira
mesmo que eu queira informar esses valores no before insert ?*



CREATE TABLE sc_criticas.criticas (
  id_criticas BIGSERIAL,
 * id_pessoas_usuarios* padroes.dom_idcontrole*notnull*,
  data_registro TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT now(),
  CONSTRAINT pk_criticas PRIMARY KEY(id_criticas),
  CONSTRAINT fk_pessoasusuarios_criticas FOREIGN KEY (id_pessoas_usuarios)
    REFERENCES sc_pessoas.pessoas_usuarios(id_pessoas_usuarios)
    ON DELETE NO ACTION
    ON UPDATE CASCADE
    NOT DEFERRABLE
)
WITH (oids = false);
------------------------------------------------------------------------------------------------------------
CREATE TRIGGER criticas_tr
  BEFORE INSERT
  ON sc_criticas.criticas FOR EACH ROW
  EXECUTE PROCEDURE public.valirada();
---------------------------------------------------------------------------------------------------------------------
CREATE OR REPLACE FUNCTION public.valirada (
)
RETURNS trigger AS
$body$
BEGIN
new.id_pessoas_usuarios = 1;
    return new;
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100;
ᐧ
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a