咖啡与喵 2017-04-11 02:00 采纳率: 100%
浏览 890
已采纳

Oracle触发器,求大神详细讲解

有一个想法,
首先创建一个表,有ID(主键),NAME,AGE
再创建一个表,表内有count。
制作一个触发器,如果用户对第一个表进行增删改的时候,触发触发器,对第二个表的count进行+1。
求解决,小白懂得少,希望大神教学,谢谢

  • 写回答

3条回答 默认 最新

  • 战在春秋 2017-04-11 02:18
    关注

    1 创建table1:

    CREATE TABLE table1 
    ( id number(5), 
      name char(20), 
      age number(2), 
    );
    

    2 创建table2,并给count字段初值为0

    CREATE TABLE table2 
    ( count number(5), 
    );
    
    INSERT INTO table2 VALUES (0);
    

    3 插入触发器

    CREATE OR REPLACE TRIGGER add_after_insert
    AFTER INSERT
       ON table1
       FOR EACH ROW
    
    DECLARE
       v_currentCount number(5); 
    
    BEGIN
        SELECT count INTO v_currentCount FROM table2;
        UPDATE table2  SET count = v_currentCount +1;
    END
    

    4 删除触发器

    CREATE OR REPLACE TRIGGER add_after_delete
    AFTER DELETE
       ON table1
       FOR EACH ROW
    
    DECLARE
       v_currentCount number(5); 
    
    BEGIN
        SELECT count INTO v_currentCount FROM table2;
        UPDATE table2  SET count = v_currentCount +1;
    END
    

    5 更新触发器

    CREATE OR REPLACE TRIGGER add_after_update
    AFTER UPDATE
       ON table1
       FOR EACH ROW
    
    DECLARE
       v_currentCount number(5); 
    
    BEGIN
        SELECT count INTO v_currentCount FROM table2;
        UPDATE table2  SET count = v_currentCount +1;
    END
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?