zoukankan      html  css  js  c++  java
  • 第七天、触发器的使用

    7.触发器的使用
    当数据库中的表发生增,删,改就会触发对应的触发器,然后执行相应的SQL语句

    1.触发器的概述、分类

    2.事务的概述
    事务是数据库中重要的机制,用于确保数据完整性和并发处理性的能力。
    它将一条或一组SQL语句当作成一个逻辑上的单元,用于保障这些语句都成功/失败。

    事务的特性:ACID
    A(Atomicity):原子性  当对某一个表进行操作的时候,增删改,不可分隔的。操作两个或两个以上的表的时候可能有一个成功一个不成功的可能,这样就产生了数据的不完整性。
    C(Consistency):一致性
    I(Isolation):隔离性  隔离等级
    D(Durability):永久性  一旦回提交了就不能再回滚了,一旦回就不能再提交了
    在ORACLE中执行DELETE做的操作是没有提交的。执行COMMIT就提交了,ROLLBACK则返回,回滚,回撤。
    SELECT * FROM BOOKS FOR UPDATE;当我没有完成COMMIT,其它的用户就不成UPDATE.这就是加锁的过程。

    3.行级触发器的工作原理
    针对增删改而展开的。
    SELECT * FROM emp;
    SELECT * FROM deptment;
    行级创建触发器:
    CREATE OR REPLACE TRIGGER del_deptid
    AFTER DELETE ON deptment
    FOR EACH ROW
    BEGIN
    DELETE FROM emp WHERE id=:old.id;
    END del_deptid;
    /
    插入触发器:
    CREATE OR REPLACE TRIGGER insert_dept
    AFTER INSERT ON deptment
    FOR EACH ROW
    BEGIN
    INSERT INTO emp(eid,ename,id) values('','',:new.id);
    END;
    /
    注:old.id,new.id  OLD就是对做动作的表
    INSERT动作时支持NEW,DELETE时支持OLD,UPDATE时支持OLD,NEW

    CREATE OR REPLACE TRIGGER books_delete
    AFTER DELETE ON books
    FOR EACH ROW
    BEGIN
    IF :old.books_id='01'; THEN         不允许删除01的记录
    RAISE_APPLICATION_ERROR(-200000,'不允许删除');
    END IF;
    END;
    /

    5.语句级触发器的设计应用
    CREATE OR REPLACE TRIGGER dml_aa
    AFTER INSERT OR REPLACE OR UPDATE
    BEGIN
    IF INSERTING THEN
    INSERT INTO mylog values(user);
    ELSE DELETING THEN
    INSERT INTO mylog VALUES(USER);
    END IF;
    END;
    /

    CREATE OR REPLACE TRIGGER set_no
    BEFORE INSERT ON auto
    FOR EACH ROW
    DECLARE
    sn nummber(5);
    BEGIN
    SELECT myseq.nextval INTO sn FROM dual;
    :NEW.a:=sn;
    END;
    /

    6.替换触发器的应用  只能用在视图上
    CREATE OR REPLACE TRIGGER tr
    INSTEAD OF INSERT ON v
    FOR EACH ROW
    BEGIN
    INSERT INTO de values(...);
    INSERT INTO emp values(...);
    END;
    /

     

     

     

  • 相关阅读:
    使用jmeter进行接口测试
    jenkins默认插件
    【机器学习】关于PCA 昕
    雲瑞文件直链分享软件
    FOB离岸价
    【数据分享】某地区1959~2019年60年降雨量时间序列数据
    【数据分享】银行客户流失Bank Customer Churn数据
    【数据分享】糖尿病患者研究数据集
    【数据分享】维基百科Wiki负面有害评论(网络暴力)文本数据多标签分类挖掘可视化
    C# Speech
  • 原文地址:https://www.cnblogs.com/astar/p/1122143.html
Copyright © 2011-2022 走看看