zoukankan      html  css  js  c++  java
  • MySql 触发器

    ⒈是什么?

      触发器就是某个表发生一个事件(增删改操作),然后自动的执行预先编译好的SQL语句,执行相关操作。触发器事件跟触发器中的SQL语句是原子性的(要么同时执行,要么同时不执行),这样保证了数据的完整性。

    ⒉创建触发器

      1.语法

    drop trigger if exists databaseName.tri_Name;  
    create trigger tri_Name  -- tri_Name代表触发器名称
    tirgger_time trigger_event on tableName  -- tirgger_time为触发时机,可选值有after/before,trigger_event为触发事件,可选值有insert/update/delete
    for each row   -- 这句话在mysql是固定的,表示任何一条记录上的操作满足触发事件都会触发该触发器。 
    begin  
        sql语句;  
    end

      2示例

        ①insert类型触发器

    1 drop trigger if exists study.tgr_users_insert;  
    2 create trigger tgr_users_insert
    3 before insert on users
    4 for each row
    5 begin
    6     set new.username='fanqi';    -- NEW用来表示将要(before)或已经(after)插入的新数据。
    7 end;

        ②delete类型触发器

    1 drop trigger if exists study.tgr_users_delete;  
    2 create trigger tgr_users_delete
    3 before delete on users
    4 for each row
    5 begin
    6     declare oldusername varchar(20) default 'fan';
    7     set oldusername = old.username;    -- old用来表示将要或已经被删除的原数据。
    8 end;

       ③update类型触发器

    1 drop trigger if exists study.tgr_users_update;  
    2 create trigger tgr_users_update
    3 before update on users
    4 for each row
    5 begin
    6     declare oldusername varchar(20) default 'fan';
    7     set oldusername = old.username;    -- old用来表示将要或已经被修改的原数据
    8     set new.username= concat(oldusername,new.username);    -- new用来表示将要或已经修改为的新数据
    9 end;

     ⒊查看触发器

    1 show triggers from databaseName;

    ⒋删除触发器

    1 drop trigger if exists databaseName.tri_Name; 
  • 相关阅读:
    信息安全学习笔记1
    Linux学习笔记4------磁盘分区(问答形式)
    Linux学习笔记3-------添加磁盘并分区
    用for循环打印三角形
    包机制
    运算符
    变量、常量、作用域
    数据类型转换
    数据的基本类型
    Java运行原理的简单理解
  • 原文地址:https://www.cnblogs.com/fanqisoft/p/10782798.html
Copyright © 2011-2022 走看看