zoukankan      html  css  js  c++  java
  • MySQL之触发器

    概念

    触发器(trigger)是MySQL提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(insert,delete, update)时就会激活它执行。

     

    创建触发器

      CREATE

      [DEFINER = { user | CURRENT_USER }]

      TRIGGER trigger_name

      trigger_time trigger_event

      ON tbl_name FOR EACH ROW

      trigger_body

      说明:

        trigger_name:触发器的名称

        trigger_time:{ BEFORE | AFTER },表示在事件之前或之后触发

        trigger_event::{ INSERT |UPDATE | DELETE },触发的具体事件

        tbl_name:该触发器作用在表名

    示例

    创建学生表
    CREATE TABLE student_info (
    stu_id INT(11) NOT NULL AUTO_INCREMENT,
    stu_name VARCHAR(255) DEFAULT NULL,
    PRIMARY KEY (stu_id)
    );
    创建学生数表
    CREATE TABLE student_count (
    student_count INT(11) DEFAULT 0
    );
    给学生数表插入默认值0
    INSERT INTO student_count VALUES(0);
    
    创建触发器,在向学生表INSERT数据时,学生数增加,DELETE学生时,学生数减少
    CREATE TRIGGER trigger_student_count_insert
    AFTER INSERT
    ON student_info FOR EACH ROW
    UPDATE student_count SET student_count=student_count+1;
    CREATE TRIGGER trigger_student_count_delete
    AFTER DELETE
    ON student_info FOR EACH ROW
    UPDATE student_count SET student_count=student_count-1;

     

    查看触发器

      SHOW TRIGGERS

      查询系统表information_schema.triggers的方式指定查询条件,查看指定的触发器信息。

      mysql> USE information_schema;

      Database changed

      mysql> SELECT * FROM triggers WHERE trigger_name='trigger_student_count_insert';

    删除触发器

      DROP TRIGGER trigger_name;

     

  • 相关阅读:
    java静态代码分析工具infer
    Go的安装和使用/卸载/升级、安装指定版本
    ldap服务器OpenLDAP安装使用
    python2 和 python3兼容写法
    ldap客户端以及jenkins的配置
    mac下java的安装和升级以及相关环境设置
    常见高危安全漏洞
    XFS: Cross Frame Script (跨框架脚本) 攻击。
    WEB渗透测试之三大漏扫神器
    编写自己的Acunetix WVS漏洞扫描脚本详细教程
  • 原文地址:https://www.cnblogs.com/ysuwangqiang/p/11810757.html
Copyright © 2011-2022 走看看