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; 
  • 相关阅读:
    Study Plan The Twelfth Day
    Study Plan The Fifteenth Day
    Study Plan The Seventeenth Day
    Study Plan The Tenth Day
    Study Plan The Eighth Day
    Study Plan The Eleventh Day
    Study Plan The Sixteenth Day
    Study Plan The Thirteenth Day
    Study Plan The Fourteenth Day
    Study Plan The Ninth Day
  • 原文地址:https://www.cnblogs.com/fanqisoft/p/10782798.html
Copyright © 2011-2022 走看看