Você está na página 1de 2

SQL Manager 2011 Lite for PostgreSQL

Create trigger

CREATE TRIGGER NomeDoTrigger { BEFORE | AFTER } { evento [ OR ... ] } ON tabela [ FOR [ EACH ] { ROW | STATEMENT } ] EXECUTE PROCEDURE NomeDaFuncao ( argumentos ) Onde: NomeDoTrigger: define o nome do trigger. Before ou After: define se o trigger ser executado antes ou depois da ao que o disparou. Evento: indica qual ao est dispara o trigger. As aes podem ser: insert, update ou delete. O mesmo trigger pode ser disparado por diferentes aes, exemplo: insert or update. Tabela: a tabela a qual o trigger est associado. For each row: indica que o trigger ser executado para cada linha alterada pela ao que o disparou (row-level). For each statement: indica que o trigger ser executado uma nica vez para a ao que o disparou. Essa clusula s suportada a partir da verso 7.4. NomeDaFuncao: o nome da funo que ser executada quando o trigger for disparado. Argumentos: argumentos a serem passados para a funo de trigger.

Exemplo:

SET TERM ^ ;

CREATE TRIGGER LANCAR_ESTOQUE FOR ITEM_ENTRADA_MEDIC ACTIVE AFTER INSERT POSITION 0 as begin update medicamentos set estoque = estoque + new.qtde_medic where cd_medicamento = new.cd_medicamento; end ^ SET TERM ; ^

SET TERM ^ ; CREATE PROCEDURE PRC_VALIDA_ESTOQ_BAIXA ( PCOD_MEDIC INTEGER, PQTDE_MEDIC INTEGER) AS DECLARE VARIABLE VESTOQUE INTEGER; begin select estoque from medicamentos where cd_medicamento = :pcod_medic into :vestoque; if (:pqtde_medic > :vestoque) then exception except_estoque_insuficiente; end^ SET TERM ; ^

Você também pode gostar