咖啡与喵 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条)

报告相同问题?

悬赏问题

  • ¥250 雷电模拟器内存穿透、寻基址和特征码的教学
  • ¥200 比特币ord程序wallet_constructor.rs文件支持一次性铸造1000个代币,并将它们分配到40个UTXO上(每个UTXO上分配25个代币),并设置找零地址
  • ¥15 关于Java的学习问题
  • ¥15 如何使用chatgpt完成文本分类任务?
  • ¥15 已知速度v关于位置s的等式,怎么转化为已知位置求速度v的等式
  • ¥15 我有个餐饮系统,用wampserver把环境配置好了,但是后端的网页却进去,是为什么,能不能帮远程一下?
  • ¥15 R运行没有名称为"species"的插槽对于此对象类"SDMmodelCV"
  • ¥20 基于决策树的数字信号处理,2ask 2psk 2fsk的代码,检查下报错的原因
  • ¥15 wincc已组态的变量过多
  • ¥60 如图:直线与椭圆X轴平行,求直线与椭圆任意一点的相切坐标计算公式