`

AFTER DELETE Trigger

阅读更多
An AFTER DELETE Trigger means that Oracle will fire this trigger after the DELETE operation is executed.
译:AFTER DELETE表示在DELETE操作执行后,ORACLE会引发该触发器
The syntax for an AFTER DELETE Trigger is:
译:AFTER DELETE触发器的语法如下:
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;

trigger_name is the name of the trigger to create.
译:trigger_name表示创建的触发器名
Restrictions:
·   You can not create an AFTER trigger on a view.
·   You can not update the :NEW values.
·   You can not update the :OLD values.
译:
限制:
·   不能够在视图上创建AFTER触发器。
·   不能够更新 :NEW 的值。
·   不能够更新 :OLD 的值。
For example:
If you had a table created as follows:
译:如果你有一个如下的表:
CREATE TABLE orders 
( order_id number(5), 
  quantity number(4), 
  cost_per_item number(6,2), 
  total_cost number(8,2) 
); 



We could then create an DELETE UPDATE trigger as follows:
译:我们像下面这样创建一个DELETE UPDATE触发器:
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;
 
分享到:
评论

相关推荐

    【脚本】Registering an AFTER SUSPEND Trigger

    标题中的“【脚本】Registering an AFTER SUSPEND Trigger”涉及到的是数据库管理和触发器的使用。在数据库系统中,触发器是一种特殊的存储过程,它会在特定的数据库操作(如INSERT、UPDATE、DELETE)发生时自动执行...

    trigger触发器trigger触发器trigger触发器

    --行级触发器 create or replace trigger insert_person after insert on person ...create or replace trigger delete_person after delete on person for each row begin delete from person2 where id=:old.id; end;

    CREATE-OR-REPLACE-TRIGGER.rar_SQL trigger_trigger

    在SQL数据库中,触发器(Trigger)是一种存储过程,它在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行。`CREATE OR REPLACE TRIGGER`是SQL语句,用于定义新的触发器或者替换已经存在的触发器。下面将...

    Create-trigger.zip_sql create trigger_sql 触发_trigger

    在SQL(Structured Query Language)中,触发器(Trigger)是一种数据库对象,用于在特定的数据操作(如INSERT、UPDATE或DELETE)发生时自动执行预定义的SQL语句或存储过程。触发器可以用来实现复杂的业务规则,确保...

    关于oracle触发器before和after的应用问题

    CREATE OR REPLACE TRIGGER age_check_trigger BEFORE INSERT ON employees FOR EACH ROW WHEN (NEW.age ) BEGIN RAISE_APPLICATION_ERROR(-20001, 'Age must be at least 18'); END; / ``` #### 结论 理解并熟练...

    Oracle Trigger

    { BEFORE | AFTER } { INSERT | UPDATE | DELETE } ON [ FOR EACH ROW ] BEGIN -- 触发器执行的代码 END; ``` **2. 示例** 假设我们有一个名为`customer`的表,其中包含客户的信息,如`cu_no`、`cu_name`、`cu_...

    trigger语法经典语法全

    在数据库领域,触发器(Trigger)是一种特殊类型的存储过程,它被设计用于响应对特定表的数据修改操作(如INSERT、UPDATE或DELETE)。触发器能够在这些操作发生时自动执行,从而帮助确保数据的一致性和完整性。本文...

    PL/SQL Trigger PL/SQL TriggerPL/SQL TriggerPL/SQL Trigger

    2. **After Trigger**:这种触发器在DML语句执行之后触发,通常用于更新索引、记录日志或进行后处理任务。After Trigger不能阻止DML语句的执行,但可以影响返回的结果集。 3. **Instead Of Trigger**:这种触发器用...

    sql.zip_trigger

    在SQL编程中,触发器(Trigger)是一种存储过程,它在特定数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行。本资料“sql.zip_trigger”包含关于SQL触发器和其他相关概念的示例,比如创建、删除触发器,以及与...

    触发器(trigger)1

    触发器(Trigger)是数据库系统中的一个重要概念,它是一种特殊类型的存储过程,其主要功能是在特定的数据库操作(如INSERT、DELETE、UPDATE)发生时自动执行。触发器的执行不依赖于应用程序的直接调用,而是由...

    oracle_trigger.rar_trigger

    Oracle数据库中的触发器(Trigger)是一种数据库对象,用于在特定的数据库操作(如INSERT、UPDATE、DELETE)发生之前或之后自动执行预定义的SQL语句或PL/SQL代码块。触发器是数据库级别的事件响应机制,它允许开发...

    SQL_Server触发器创建、删除、修改、查看示例

    AFTER DELETE AS BEGIN DELETE FROM Orders WHERE GoodsName IN (SELECT Name FROM Deleted) END; ``` 4. **订单日期更新触发器**:防止订单日期被修改。 ```sql CREATE TRIGGER orderdateupdate ON Orders ...

    触发器,trigger

    - **触发时间**:触发器可以在事件发生之前(`BEFORE`)或者之后(`AFTER`)执行。 - **触发级别**:分为语句级触发器和行级触发器。语句级触发器在整个SQL语句执行过程中仅触发一次,而行级触发器会在SQL语句影响的...

    oracle trigger(1)

    - 触发器定义:`CREATE OR REPLACE TRIGGER UpdateMajorStats AFTER INSERT OR DELETE OR UPDATE ON students ...` - 这个触发器会在`students`表上的任何DML操作后自动运行。 - 功能:保持`major_stats`表中的...

    使用 Trigger 紀錄資料表的新增、修改、刪除的行為

    AFTER INSERT, UPDATE, DELETE AS BEGIN DECLARE @dbname VARCHAR(25) = DB_NAME() DECLARE @istype TINYINT SET @istype = CASE WHEN EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM deleted) THEN...

    oracle触发器(trigger).pdf

    使用`CREATE TRIGGER`语句创建触发器,指定数据库名、触发器名、触发时机(BEFORE或AFTER)、触发动作(INSERT, UPDATE, DELETE)以及触发器的主体部分,其中主体部分包含触发器的行为。 ```sql DELIMITER | ...

    Library-SQL.zip_trigger example SQL_创建触发器

    FOR|AFTER|INSTEAD OF {INSERT|UPDATE|DELETE} AS BEGIN -- 触发器执行的SQL语句 END; ``` 在这个"图书管理系统"的例子中,可能包含以下几种类型的触发器: 1. **INSERT触发器**:当向表中插入新记录时,该触发器...

    monitor-trigger

    配置如果您使用预配置的 zip 存档,请跳过转到项目根目录构建: mvn 全新安装将 target/*jar 复制到 hsqldb 文件夹中的 lib 文件夹启动 hsql 控制台并创建“testdb... CREATE TRIGGER people_insert_trigger AFTER INSE

Global site tag (gtag.js) - Google Analytics