TRIGGERS (SQL) - intranet.ifs.ifsuldeminas.edu.br · 04/05/16 3 CREATE TRIGGER RESUMO CREATE...

6
04/05/16 1 TRIGGERS (SQL) Sistemas de Informações Geográficas INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA SUL DE MINAS GERAIS Câmpus Inconfidentes O QUE É UMA TRIGGER Uma trigger é uma especificação que o banco de dados deve executar, normalmente uma função. As triggers podem estar associadas a: tabelas, views, e chaves estrangeiras de tabelas. Nas tabelas e chaves estrangeiras elas podem estar associadas a operações de: INSERT, UPDATE e DELETE.

Transcript of TRIGGERS (SQL) - intranet.ifs.ifsuldeminas.edu.br · 04/05/16 3 CREATE TRIGGER RESUMO CREATE...

Page 1: TRIGGERS (SQL) - intranet.ifs.ifsuldeminas.edu.br · 04/05/16 3 CREATE TRIGGER RESUMO CREATE TRIGGER RESUMO • Parâmetros NAME – o nome que deve ser dado a trigger. Deve ser distinto

04/05/16

1

TRIGGERS (SQL) Sistemas de Informações Geográficas

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA SUL DE MINAS GERAIS Câmpus Inconfidentes

O QUE É UMA TRIGGER

•  Uma trigger é uma especificação que o banco de dados deve executar, normalmente uma função.

•  As triggers podem estar associadas a: tabelas, views, e chaves estrangeiras de tabelas.

•  Nas tabelas e chaves estrangeiras elas podem estar associadas a operações de: INSERT, UPDATE e DELETE.

Page 2: TRIGGERS (SQL) - intranet.ifs.ifsuldeminas.edu.br · 04/05/16 3 CREATE TRIGGER RESUMO CREATE TRIGGER RESUMO • Parâmetros NAME – o nome que deve ser dado a trigger. Deve ser distinto

04/05/16

2

CREATE TRIGGER

CREATE TRIGGER

•  Uma trigger pode ser especificada para executar uma ação:

•  Antes (BEFORE)

•  Depois (AFTER)

•  Ao invés de (INSTEAD OF) deve estar acompanhada do comando FOR EACH ROW e somente pode ser usado em views.

Page 3: TRIGGERS (SQL) - intranet.ifs.ifsuldeminas.edu.br · 04/05/16 3 CREATE TRIGGER RESUMO CREATE TRIGGER RESUMO • Parâmetros NAME – o nome que deve ser dado a trigger. Deve ser distinto

04/05/16

3

CREATE TRIGGER RESUMO

CREATE TRIGGER RESUMO

•  Parâmetros

NAME – o nome que deve ser dado a trigger. Deve ser distinto de outro nome de trigger usado na mesma tabela; BEFORE; AFTER e INSTEAD OF – determina quando a função é executada pelo evento. EVENT – especifica o evento que será executado pela trigger. Pode ser: INSERT, UPDATE ou DELETE. TABLE_NAME – é o nome da tabela, view ou chave estrangeira. CONDITION – uma expressão boleana que determina quando a trigger será executada. Se a clausula WHEN for usada a trigger somente será executada quando a condição retornar TRUE. FUNCTION_NAME – é o nome da função que é executada quando a condição da trigger for aceita.

Page 4: TRIGGERS (SQL) - intranet.ifs.ifsuldeminas.edu.br · 04/05/16 3 CREATE TRIGGER RESUMO CREATE TRIGGER RESUMO • Parâmetros NAME – o nome que deve ser dado a trigger. Deve ser distinto

04/05/16

4

CREATE TRIGGER EXEMPLOS

CREATE TRIGGER EXEMPLOS

Page 5: TRIGGERS (SQL) - intranet.ifs.ifsuldeminas.edu.br · 04/05/16 3 CREATE TRIGGER RESUMO CREATE TRIGGER RESUMO • Parâmetros NAME – o nome que deve ser dado a trigger. Deve ser distinto

04/05/16

5

CREATE TRIGGER EXEMPLOS PRÁTICOS

CREATE OR REPLACE FUNCTION calc_area() RETURNS trigger AS $BODY$ BEGIN

NEW.area := st_area(NEW.the_geom); RETURN NEW;

END; $BODY$ LANGUAGE plpgsql;

CREATE TRIGGER calc_area_trig BEFORE INSERT OR UPDATE ON reservatorio FOR EACH ROW EXECUTE PROCEDURE calc_area();

CREATE TRIGGER EXEMPLOS PRÁTICOS

CREATE OR REPLACE FUNCTION calc_comprimento() RETURNS trigger AS $BODY$ BEGIN

NEW.comprimento := st_length(NEW.the_geom); RETURN NEW;

END; $BODY$ LANGUAGE plpgsql; CREATE TRIGGER calc_compri_trig BEFORE INSERT OR UPDATE ON ramal FOR EACH ROW EXECUTE PROCEDURE calc_comprimento();

Page 6: TRIGGERS (SQL) - intranet.ifs.ifsuldeminas.edu.br · 04/05/16 3 CREATE TRIGGER RESUMO CREATE TRIGGER RESUMO • Parâmetros NAME – o nome que deve ser dado a trigger. Deve ser distinto

04/05/16

6

DÚVIDAS

e-mail: [email protected]

Fonte: BOLSTAD (2012).