咖啡与喵
2017-04-11 02:00
采纳率: 29.4%
浏览 885

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
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 曹大仙呀 2017-04-11 02:08

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

    2 希望对您有所帮助

    评论
    解决 无用
    打赏 举报
  • 咖啡与喵 2017-04-11 03:04

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

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题