精华内容
下载资源
问答
  • MySQL 触发器

    2021-02-27 16:03:08
    Re: MySQL 触发器 ============================= # 触发器概念 触发器,顾名思义,就是当执行某个事件的时候触发另一个事件的执行!数据库中的触发器是和表关联的特殊的存储过程,它可以在插入、删除或修改该表表...
  • MySQL触发器

    2018-12-15 13:10:38
    介绍了MySQL触发器的相同内容。包括触发器的创建、删除,使用和测试过程
  • mysql 触发器

    千次阅读 2017-04-19 19:09:55
    MySQL 触发器

    一、创建触发器

    功能:在table2上建立触发器,数据同步到table1上(假设两个表均具有三个字段id,column1,column2)

    1、增
    CREATE TRIGGER table2_insert AFTER INSERT ON table2 FOR EACH ROW
    BEGIN

    INSERT INTO table1 (

    id,

    column1,

    column2

    )

    VALUES (

    new.id,

    new.column1,

    new.column2

    );

    END;


    2、删
    CREATE TRIGGER table2_delete AFTER DELETE ON table2 FOR EACH ROW
    BEGIN
    DELETE FROM table1
    WHERE table1.id = old.id;
    END;

    3、改
    CREATE TRIGGER table2_update AFTER UPDATE ON table2 FOR EACH ROW
    BEGIN
    UPDATE table1
    SET 
    table1.column1 = new.column1,
    table1.column2 = new.column2
    WHERE
    table1.id = new.id;
    END;


    二、删除触发器

    DROP TRIGGER table2_insert;
    DROP TRIGGER table2_update;
    DROP TRIGGER table2_delete;


    三、说明

    1、创建和删除触发器操作必须在table2所在的schema上执行
    2、DML触发器的触发事件有INSERT、UPDATE和DELETE三种
    3、触发的时间有BEFORE和AFTER两种,分别表示触发动作发生在DML语句执行之前和语句执行之后
    4、触发级别,有语句级触发器和行级触发器两种。语句级触发器表示SQL语句只触发一次触发器,行级触发器表示SQL语句影响的每一行都要触发一次
    5、查看触发器命令:SHOW TRIGGERS;
    6、load data和replace语句也能引起触发器执行
    7、before或after,均是第一条若执行失败,第二条也会执行失败;若第二条失败,则第一条会回滚
    8、集群中,应该在主库上执行触发器操作
    9、触发器是一种特殊的存储过程
    10、触发器存在性能问题
    11、复杂逻辑嵌套有可能引起死锁
    12、触发器隐士调用容易被忽略,致使排错困难
    13、可移植性差,不支持跨数据库软件移植
    14、占用服务器资源
    15、不能做DDL操作
    16、若执行失败,事务性表回滚,非事务性表不能回滚
    17、事件触发





    展开全文
  • mysql触发器

    2015-11-25 19:25:14
    Mysql触发器的例子,包括,创建,删除,修改,三种触发器的实例
  • Mysql触发器

    2021-04-17 15:44:05
    Mysql触发器触发器原理触发器使用场景 触发器原理 触发器使用场景 代码层面可以实现,如果是CS 或者BS 架构, 会有不同的用户在操作数据库,无法保证数据的准确性

    触发器原理

    触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。

    触发器可以保证数据库端的数据完整性
    查询:

    SHOW TRIGGERS;

    删除:

    drop trigger trigger_name;

    PS: drop table时,会把的触发器也被drop掉了

    触发器使用场景

    触发器实现的功能,代码层面可以实现,如果采用的是CS 或者BS 架构, 会有不同的用户在操作数据库,无法保证插入数据的值(非主键)在数据库是唯一的

    demo

    // 更新学生成绩
    DELIMITER $$
    
    USE `test_table`$$
    
    DROP TRIGGER /*!50032 IF EXISTS */ `updateStudentGrade`$$
    
    CREATE
        TRIGGER `updateStudentGrade` BEFORE INSERT ON `student` 
        FOR EACH ROW BEGIN
    IF new.grade IS NULL THEN
    	SET new.grade= 60;
    END IF;
    END;
    $$
    
    DELIMITER ;
    
    展开全文
  • MySql触发器

    2012-05-31 13:07:23
    此文档中详细的记载了,MySql触发器的详细解读,希望可以帮到你!
  • MYSQL触发器

    2018-08-29 17:21:20
    MYSQL触发器 一. 触发器概念 作用:在通过sql对表进行插入,更新,删除操作的时候自动执行触发器中的sql语句对数据进行进一步操作 分类: DML(数据库操作语言) after触发器(之后触发) insert触发器 ...

    MYSQL触发器


    . 触发器概念

    1. 作用:在通过sql对表进行插入,更新,删除操作的时候自动执行触发器中的sql语句对数据进行进一步操作
    2. 分类:
      1. DML(数据库操作语言)
        1. after触发器(之后触发)
          1. insert触发器
          2. update触发器
          3. delete触发器
        2. before触发器(之前触发)
          1. insert触发器
          2. update触发器
          3. delete触发器

    . 触发器工作原理

    1. 触发过程:
      1. 触发器被触发
      2. 在内存中创建两张虚拟表inserted和deleted
      3. 根据操作表的sql语句的不同,对两张虚拟表进行相应的操作
      4. 触发器检查inserted和deleted表中的新数据,确定是否要回滚或者其他操作
    2. 不同sql语句执行时,对inserted和deleted的操作对照

    操作表的sql语句

    inserted表

    deleted表

    insert语句

    存放新增的记录

     

    deleted语句

     

    存放被删除的记录

    update语句

    存放更新后的记录

    存放更新前的记录


    . 触发器的创建

    1. 语法:
      #1. 单条语句触发器
      
      CREATE  TRIGGER  触发器名
      
      trigger_time
      
      trigger_event ON 表名
      
      FOR EACH ROW
      
      a_trigger_stmt
      
      
      
      #2. 多条语句触发器
      
      DELIMITER $
      
      CREATE  TRIGGER  触发器名
      
      trigger_time
      
      trigger_event ON 表名
      
      FOR EACH ROW
      
      BEGIN
      
      trigger_stmts
      
      END
      
      DELIMITER ;
      
      

      其中:

      1. trigger_time{BEFORE | AFTER}  触发时机

      2. trigger_event{INSERT | UPDATE | DELETE}  触发事件

      3. a_trigger_stmt  触发器程序体,一句SQL语句

      4. trigger_stmts  触发器程序体,多条语句。

    2. 注意:一个表上不能建立两个相同类型的触发器,所以一个表最多建立六个触发器
    3. BEGIN...END
      1. DELIMITER:用来重新定义sql语句的结束符号
        1. 中因为其中一条结束的时候的分号会导致mysql判断整条语句结束,所以再开始的地方通过“DELIMITER 重新定义的语句结束符号”来让mysql知道在哪结束,当然,运行完需要将;在改回来,所以有了最后一句“DELIMITER ;
      2. DECLARE:用来定义局部变量
        1. BEGIN...END中用
        2. 定义在BEGIN...END中所有语句的第一句
        3. 语法:DECLARE var_name[,...] type [DEFAULT value]
          1. var_name 为变量名称,同 SQL 语句一样,变量名不区分大小写;
          2. type 为 MySQL 支持的任何数据类型;可以同时定义多个同类型的变量,用逗号隔开;
          3. 变量初始值为 NULL,如果需要,可以使用 DEFAULT 子句提供默认值,值可以被指定为一个表达式
    4. NEW和OLD
      1. new和old表示触发器所在的表中,触发了触发器的那一行数据
      2. 其中old是只读的,而new则可以在触发器中使用set赋值

    操作表的sql语句

    new

    old

    insert语句

    存放新增行数据

     

    deleted语句

     

    表示被删除行数据

    update语句

    表示更新后的行数据

    表示更新前的行数据

    1. 易于理解的实例:mysql触发器商城应用

    四. 管理触发器

    1. 查看触发器:SHOW TRIGGERS [FROM schema_name];
    2. 删除触发器:DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name
    展开全文
  • MySql 触发器

    2020-05-28 21:58:25
    MySql 触发器 触发器是什么? 触发器按照字面上的意思来理解,其实很简单,就是会触发一系列的事件操作的东西。 基本概念:触发器是与表事件相关的特殊存储过程,它的执行不由程序调用,也非手工启动,而是由事件...

    MySql 触发器

    触发器是什么?

    触发器按照字面上的意思来理解,其实很简单,就是会触发一系列的事件操作的东西。
    基本概念:触发器是与表事件相关的特殊存储过程,它的执行不由程序调用,也非手工启动,而是由事件触发而被执行的(存储过程和触发器最大的区别就在,存储过程需要主动调用其名字执行)


    触发器有什么用?
    触发器(trigger):事先为某张表绑定一段代码,当表中的某些内容发生增、删、改时,系统会自动触发代码并执行。


    触发器怎么实现

    表
    account_order  varchar
    account_name   varchar
    
    
    // 创建一个触发器 名字为capital  触发类型: BEFORE(在执行操作之前) AFTER(在执行操作之后)
    CREATE TRIGGER capital BEFORE 
    // 在执行 INSERT 操作时 启动触发器
    // account 在 account 表中加入触发器
    INSERT ON account FOR EACH ROW 
    BEGIN   //  BEGIN 过程开始  当只需要执行一条语句时  可以 set  下面 例子
    	// 声明一个变量
    	DECLARE number_rand VARCHAR(255) ; 
     	
     	// new.account_name 表示我刚刚准备插入的数据 (注意不是用 account(表名去点))
    	SET number_rand = (select CONCAT(substring(MD5(RAND()),1,10),new.account_name));
     	
     	//  把变量中的值放在我新增的一列(account表的account_order )中
    	SET new.account_order = number_rand;
    
    END;   //  过程结束
    
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 67,907
精华内容 27,162
关键字:

mysql触发器

mysql 订阅