Oracle-Tutorial: Pre-Trigger und Post-Trigger

Was ist ein Auslöser?

Wichtige Punkte:
1. Auslöser: Wenn eine angegebene Anweisung Hinzufügungen, Löschungen und Änderungen ausführt. Oracle führt die benutzerdefinierte Datenbankfunktion automatisch im Trigger aus.
2. Pre-Trigger: Der Trigger, der ausgeführt wird, bevor die Hinzufügungs-, Lösch- und Änderungsvorgänge nicht festgeschrieben werden, wird als Pre-Trigger bezeichnet.
3. Post-Trigger: Der nach dem Festschreiben des Hinzufügungs-, Lösch- und Änderungsvorgangs ausgeführte Trigger wird als Post-Trigger bezeichnet.

Trigger-Syntax

Wichtige Punkte:
1. Trigger auf Zeilenebene: Bearbeiten Sie die Datenänderung jeder Zeile in der Tabelle.
2. Trigger auf Anweisungsebene: ein Trigger, der auf jede Tabelle wirkt.
3. :alte Daten vor der Änderung. Aktualisieren und löschen.
4. :new Die geänderten Daten. Einfügen und aktualisieren.
5. Grammatik:

CREATE [or REPLACE] TRIGGER 触发器名
BEFORE | AFTER
[DELETE ][[or] INSERT] [[or]UPDATE [OF 列名]]
ON 表名
[FOR EACH ROW ][WHEN(条件) ]
declare
……
begin
PLSQL 块
End

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

Vorauslöser

Wichtige Punkte: Verwenden Sie Beispiele, um zu verstehen, wie Pre-Trigger erstellt werden.

--需求:当用户输入本月累计表数后,自动计算出本月使用数 。
create or replace trigger tri_account_num1
before
update of num1
on t_account 
for each row
declare

begin 
  --通过伪记录变量修改usenum字段的值num1(水表现在的数值),num0(上个月使用的水表数)
  :new.usenum := :new.num1-:new.num0;
end;

Post-Trigger

Wichtigste Erkenntnis: Verstehen Sie anhand von Beispielen, wie Sie Post-Trigger erstellen.

--需求:当用户修改了业主信息表的数据时记录修改前与修改后的值
--创建后置触发器日志表
create table t_owners_log(
updatetime date,
ownerid number,
oldname varchar2(30),
newname varchar2(30)
);
--根据需求创建后置触发器
create or replace trigger tri_owners_log
after
update of name
on t_owners 
for each row
declare
begin 
  --向日志表插入记录
  insert into t_owners_log values(sysdate,:new.id,:old.name,:new.name);
end;

--测试
--修改t_owners表中的name
update t_owners set name='林玲玲1' where id=4;

Fügen Sie hier eine Bildbeschreibung ein

Acho que você gosta

Origin blog.csdn.net/a772304419/article/details/132480195
Recomendado
Clasificación