zoukankan      html  css  js  c++  java
  • 10.触发器

    触发器: trigger
    create trigger 触发器名 after/before insert/update/delete
    on 表名 for each row
    sql (非查询语句);

    例:监听学生表,如果某个学生被更新了就将系部表中4号系的人数加1

    create trigger tri_a after update on t_student
    for each row
    update t_dept set dnum=dnum+1 where did = 4;


    同一个事件只能有一个触发器。
    insert update delete 每个语句两个事件 before after
    即一张表最多6个触发器。

    例: 监听学生表,如果有学生被删除 就去系部表中将这个学生所在的系
    的人数减一。

    create trigger tri_b after delete on t_student
    for each row
    update t_dept set dnum = dnum-1 where did = old.did;

    create trigger tri_c after insert on t_student
    for each row
    update t_dept set dnum = dnum + 1 where did = new.did;


    create trigger tri_e after delete on t_student
    for each row
    insert into t_abc(id,name,ename,age) values(old.sid,old.sname,old.sename,old.sage);


    delete触发器中会隐藏一张old虚拟的表,这个表中的数据就是刚刚删除的数据.
    insert触发器中会隐藏一张new虚拟的表,这个表中的数据就是刚刚添加的数据
    update触发器中会隐藏一张new虚拟的表和一张old虚拟的表,

    触发器类似与Java的监听机制

    after/before 触发以后/触发以前

    Create trigger 触发器名 after/before insert/update/delete on 被检测的表
    For each row
    Sql 语句(不包含查询语句);

  • 相关阅读:
    XML 命名空间
    XML Schema验证
    java 解析XML文档
    Java线程:创建与启动
    CCF-CSP 201312-5 I'm stuck !
    memset函数用法
    C++的字符串多行输入
    OS复习1
    os复习2
    javamail编程2
  • 原文地址:https://www.cnblogs.com/makalochen/p/10656602.html
Copyright © 2011-2022 走看看