qq_35930299
卖咖啡的喵
采纳率29.4%
2017-04-11 02:00 阅读 881

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

55

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    fight_in_dl 战在春秋 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 评论 复制链接分享
  • qq_34770510 曹大仙呀 2017-04-11 02:08

    1 oracle创建表,序列,触发器,自动生成唯一主键:http://blog.csdn.net/u014079773/article/details/53425114

    2 希望对您有所帮助

    点赞 1 评论 复制链接分享
  • qq_35930299 卖咖啡的喵 2017-04-11 03:04

    有个问题哥 这个是不是应该要创建一个序列,不然会提示‘无效且未通过验证’

    点赞 评论 复制链接分享

相关推荐