توضیحات
AFTER DELETE Trigger به معنی این است که بعد از اجرای یک دستور delete، یک تریگر فعال (fire) شود.
دستور
دستور Ater delete triger به صورت زیر نوشته میشود:
CREATE [ OR REPLACE ] TRIGGER trigger_name AFTER DELETE ON table_name [ FOR EACH ROW ] DECLARE -- variable declarations BEGIN -- trigger code EXCEPTION WHEN ... -- exception handling END;
.
OR REPLACE: گزینهای اختیاری است، اگر فعال شود به این معنی است که میتوان دوباره تریگری با این نام ساخت بدون اینکه نیاز باشد این تریگر پاک شود.
table_name: نام جدولی که تریگر بر روی آن ساخته شده است.
نکته: این دستور را میتوان برای insert و update به صورت after insert و after delete نوشت.
مثال
مثالی از دستور ساخت After Delete triger را مشاهده میکنیم:
CREATE TABLE orders ( order_id number(5), quantity number(4), cost_per_item number(6,2), total_cost number(8,2) ); CREATE OR REPLACE TRIGGER orders_after_delete AFTER DELETE ON orders FOR EACH ROW DECLARE v_username varchar2(10); BEGIN -- Find username of person performing the DELETE on the table SELECT user INTO v_username FROM dual; -- Insert record into audit table INSERT INTO orders_audit ( order_id, quantity, cost_per_item, total_cost, delete_date, deleted_by) VALUES ( :old.order_id, :old.quantity, :old.cost_per_item, :old.total_cost, sysdate, v_username ); END;