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 语句(不包含查询语句);

  • 相关阅读:
    sort函数详解
    C++重载运算符的规则详解
    poj3061-subsequence
    员工管理系统 :练习
    Jdbc 模拟登陆系统的练习
    有关String 的常用方法
    浅谈希尔排序-----摘录
    简单选择排序
    typedef 和define 的区别
    写博客的理由
  • 原文地址:https://www.cnblogs.com/makalochen/p/10656602.html
Copyright © 2011-2022 走看看