精华内容
下载资源
问答
  • 使用MySqlWorkbench创建触发器的语法 DELIMITER| CREATE TRIGGER <触发器名> AFTER DELETE ON student FOR EACH ROW BEGIN ...上面是在学生表上建立一个触发器,当从学生表中删除一条记录时,会把...

    使用MySqlWorkbench创建触发器的语法

    DELIMITER|
    CREATE TRIGGER <触发器名> AFTER DELETE ON student
    FOR EACH ROW BEGIN
    	DELETE FROM Grade WHERE stuId=old.stuId;
    END;
    |
    DELIMITER;
    

    上面是在学生表上建立一个触发器,当从学生表中删除一条记录时,会把成绩表中相应的该学生的信息删除掉

    展开全文
  • 在这里建了两表:其中这两表的结构不一样,这里给表admin建立触发器在对表admin操作的同时,触发数据库的触发器,同时操作表users。1.创建表:create table admin(id int,name char(30),age int(3),email char...

    说明:Mysql5.0以上的版本才支持下面的操作。

    Mysql 触发器的插入、更新、删除操作。

    在这里建了两个表:其中这两个表的结构不一样,这里给表admin建立触发器

    在对表admin操作的同时,触发数据库的触发器,同时操作表users。

    1.创建表:create table admin(id int,name char(30),age int(3),email char(100));

    create table users(id int,name char(30),age int(3));

    2.创建触发器:

    delimiter //

    注:在命令提示符下输入delimiter // 这样是用//替换换行符,这样可避免点击换行键时执行程序。

    2.1.插入时触发

    drop trigger my_insert;

    create trigger my_insert after insert on admin for each row

    begin

    insert into users(id,name,age) values(new.id,'new.name',new.age);

    end;

    //

    2.2.更新时触发drop trigger my_update;

    create trigger my_update after update on admin for each row

    begin

    update users set name=new.name,age=new.age where id=old.id;

    end;

    //

    2.3.删除时触发drop trigger my_delete;

    create trigger my_delete after delete on admin for each row

    begin

    delete from users where id=old.id;

    end;

    //

    说明:delimiter //

    在命令提示符下操作,默认情况下,不可能等到用户把这些语句全部输入完之后,再执行整段语句。

    因为mysql一遇到分号,它就要自动执行。

    即,在语句RETURN '';时,mysql解释器就要执行了。

    这种情况下,就需要事先把delimiter换成其它符号,如//或$$。

    展开全文
  • 什么是mysql触发器需要MySQL 5 对触发器的支持是在MySQL 5中增加的。因此,本章内容适用于MySQL 5或之后的版本。MySQL语句在需要时被执行,存储过程也是...2.每当订购一个产品时,都从库存数量中减去订购的数量;3...

    什么是mysql触发器

    需要MySQL 5 对触发器的支持是在MySQL 5中增加的。因此,本章内容适用于MySQL 5或之后的版本。

    MySQL语句在需要时被执行,存储过程也是如此。但是,如果你想要某条语句(或某些语句)在事件发生时自动执行,怎么办呢?例如:

    1.每当增加一个顾客到某个数据库表时,都检查其电话号码格式是否正确,州的缩写是否为大写;

    2.每当订购一个产品时,都从库存数量中减去订购的数量;

    3.无论何时删除一行,都在某个存档表中保留一个副本。

    所有这些例子的共同之处是它们都需要在某个表发生更改时自动处理。这确切地说就是触发器。触发器是MySQL响应以下任意语句而自动执行的一条MySQL语句(或位于 BEGIN 和 END 语句之间的一组语句):

    1.DELETE ;

    2.INSERT ;

    3.UPDATE 。

    其他MySQL语句不支持触发器。

    创建mysql触发器

    在创建触发器时,需要给出4条信息:

    1.唯一的触发器名;

    2.触发器关联的表;

    3.触发器应该响应的活动( DELETE 、 INSERT 或 UPDATE );

    4.触发器何时执行(处理之前或之后)。

    保持每个数据库的触发器名唯一 在MySQL 5中,触发器名必须在每个表中唯一,但不是在每个数据库中唯一。这表示同一数据库中的两个表可具有相同名字的触发器。这在其他每个数据库触发器名必须唯一的DBMS中是不允许的,而且以后的MySQL版本很可能会使命名规则更为严格。因此,现在最好是在数据库范围内使用唯一的触发器名。

    触发器用 CREATE TRIGGER 语句创建。下面是一个简单的例子:

    输入:create trigger newproduct after insert on proucts for each row select 'product added';

    分析:CREATE TRIGGER 用来创建名为 newproduct 的新触发器。触发器可在一个操作发生之前或之后执行,这里给出了 AFTER INSERT ,所以此触发器将在 INSERT 语句成功执行后执行。这个触发器还指定 FOR EACH ROW ,因此代码对每个插入行执行。在这个例子中,文本 Product added 将对每个插入的行显示一次。为了测试这个触发器,使用 INSERT 语句添加一行或多行到 products

    中,你将看到对每个成功的插入,显示 Product added 消息。

    仅支持表 只有表才支持触发器,视图不支持(临时表也不支持)。

    触发器按每个表每个事件每次地定义,每个表每个事件每次只允许一个触发器。因此,每个表最多支持6个触发器(每条 INSERT 、 UPDATE和 DELETE 的之前和之后)。单一触发器不能与多个事件或多个表关联,所以,如果你需要一个对 INSERT 和 UPDATE 操作执行的触发器,则应该定义

    两个触发器。

    触发器失败 如果 BEFORE 触发器失败,则MySQL将不执行请求的操作。此外,如果 BEFORE 触发器或语句本身失败,MySQL将不执行 AFTER 触发器(如果有的话)。

    删除mysql触发器

    现在,删除触发器的语法应该很明显了。为了删除一个触发器,可使用 DROP TRIGGER 语句,如下所示:

    输入:drop trigger newproduct ;

    分析:触发器不能更新或覆盖。为了修改一个触发器,必须先删除它,然后再重新创建。

    【相关推荐】

    展开全文
  • MySQL触发器资料整理创建触发器及查看、删除触发器 一、什么是触发器 1、触发器是一种特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是通过事件来触发,比如对一个表进行操作(insert,delete,...

                          MySQL触发器资料整理创建触发器及查看、删除触发器

     

    一、什么是触发器

    1、触发器是一种特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是通过事件来触发,比如对一个表进行操作(insert,delete,update)的时候,就会执行它。 (触发器概念

    2、区别:触发器与存储过程的唯一区别是触发器不能执行EXECUTE语句调用,而是在用户执行Transact-SQL语句时自动触发执行。

     

    二、创建触发器

    1、 语法

    create
        TRIGGER trigger_name
        trigger_time trigger_event
        ON table_name FOR EACH ROW
    BEGIN
        # do something
    END;
    

    2、关键词说明

                     a. trigger_name: 触发器名称,唯一不可重复的。

                     b. trigger_time: 触发器执行时间 。 {BEFORE / AFTER} 表示事件之前或之后执行。

                     c. trigger_event:触发触发器的事件。{INSERT / DELETE / UPDATE}某个事件执行 

    • INSERT 当新的一行数据插入表中时触发,如执行insert,load data,replace语句插入新数据
      • DELETE 当表的一行数据被删除时触发,如执行delete,replace语句
      • UPDATE 当表的一行数据被修改时触发,如执行update语句时

                     d. table_name:触发器作用于某张表上。

     

    3.1、示例 --- 创建一个 update 触发器

    CREATE
        TRIGGER update_client
        AFTER UPDATE
        on client for each ROW
    BEGIN
        INSERT INTO `client_log` (
            `client_id`,
            `modify_flag`,
            `name`,
            `contact`,
            `phone`,
            `email`,
            `remarks`,
            `del_flag`,
            `create_date`,
            `create_by`,
            `update_date`,
            `update_by`
        )
        VALUES(
            old.id,
            "修改--原数据",
            old.name,
            old.contact,
            old.phone,
            old.email,
            old.remarks,
            old.del_flag,
            old.create_date,
            old.create_by,
            old.update_date,
            old.update_by
        );
    END;

    3.2、示例---创建一个 insert 触发器

    DELIMITER $ # (使用 DELIMITER 将语句分隔符改为 $)
    CREATE
        TRIGGER insert_client
        AFTER INSERT
        on client for each ROW
    BEGIN
        INSERT INTO `chapter`.`client_log` (
            `client_id`,
            `modify_flag`,
            `name`,
            `contact`,
            `phone`,
            `email`,
            `remarks`,
            `del_flag`,
            `create_date`,
            `create_by`,
            `update_date`,
            `update_by`
        )
        VALUES(
            new.id,
            "新增数据",
            new.name,
            new.contact,
            new.phone,
            new.email,
            new.remarks,
            new.del_flag,
            new.create_date,
            new.create_by,
            new.update_date,
            new.update_by
        );
    END$
    DELIMITER $
    
    

    4、old 、 new 说明

                      a. old :表示 修改 或 删除 之前的字段数据

                      b. new:表示 修改之后 或 插入的字段数据。(插入 之前、之后都可以)

     

    三、查看触发器

    1、

     show triggers ;

    2、

    SELECT a.* from information_schema.`TRIGGERS` a [ where a.TRIGGER_NAME = 'update_client' ] ;

     

    四、删除触发器

    1、 DROP TRIGGER IF EXISTS trigger_name ;

    2、示例:

    DROP TRIGGER IF EXISTS update_client ;

     

     

    五、触发器的执行顺序

    1、我们建立的数据库一般都是 InnoDB 数据库,若SQL语句或触发器执行失败,MySQL 会回滚事务,有:

                     ①若 BEFORE 触发器执行失败,则 SQL 无法正确执行。

          ②若 SQL 执行失败时,则 AFTER 型触发器不会触发。

          ③若 AFTER 触发器执行失败,则 SQL 会回滚。

     

    2、执行顺序图解

     

     

    补充:若有疑问,可私信联系。 需要示例代码完整脚本,请私信练习,谢谢。

     

    参考资料: MySQL触发器使用详解

                       MySQL存储过程学习整理,游标使用,参数输入输出

    MySQL触发器资料整理创建触发器及查看、删除触发器

    MySQL存储过程学习整理,游标使用,参数输入输出

     MyBatis调用存储过程,MyBatis调用函数的使用方法

    MySQL 创建函数, MySQL定义函数实现汉字转拼音 MySQL汉字转拼音MySQL汉字生成拼音字符串

    MySQL WHILE和LOOP和REPEAT循环的用法区别 MySQL三种循环的区别 MySQL循环使用方法

            MySQL创建视图

     

    展开全文
  • 触发器的作用是,对表inventory任意字段的值进行修改,先判断是否对remark这字段是否进行了修改, 如果修改了,就在inventory_log表的l_type字段...表没问题,同样的sql语句,删除触发器就可以执行了,求教 ...
  • 创建一个简单的触发器

    千次阅读 2010-05-08 13:02:00
    一、创建一个简单的触发器触发器是一种特殊的存储过程,类似于事件函数,SQL Server™ 允许为 INSERT、UPDATE、DELETE 创建触发器,即当在表中插入、更新、删除记录时,触发一个或一系列 T-SQL语句。触发器可以在...
  • 触发器一个特殊的存储过程,存储过程是需要手动调用的,而触发器是程序自动出发的,比如在对某张表进行删除操作前执行触发器。可以设置在增删除操作前或者之后执行 1.确认mysql服务开启。 。 2.连接...
  • 触发器是一种特殊的存储过程,类似于事件函数,SQL Server™ 允许为 Insert、Update、Delete 创建触发器,即当在表中插入、更新、删除记录时,触发一个或一系列 T-SQL语句。触发器可以在查询分析器里创建,也可以在...
  • //做一个简单的练习,创建一个简单的触发器 完成添加文章的时候,自动加上时间,默认作者 为 ‘日记本的回忆‘show columns from test; //查看表结构//查看已存在触发器show triggers \G//将结束符换成$\d $//创建...
  • 在MySQL5.6版本里,不支持一个表有多个INSERT/DELETE/UPDATE触发器。例如创建t1表两个INSERT的触发器:DELIMITER$$USE`test`$$DROPTRIGGER/*!50032IFEXISTS*/`t1_1`$$CREATE/*!50017DEFINER='admin'@'%'*/TRIGGER`t1...
  • 当对一张表,进行更新、删除、插入等操作时,会需要对...但是有时我们需要监控,指定列的更新,只有当某一列更新 或者 只有当某一列更新为某一个数值时 我们才启动触发器 这是只要稍加改动,在BEGIN 之前加上限制条件
  • 什么是触发器触发器是一种由事件自动触发执行的特殊存储过程,这些事件可以是对一个表进行 INSERT、UPDATE、DELETE 等操作。触发器经常用于加强数据的完整性约束和业务规则上的约束等。查看触发器select * from ...
  • 你可以尝试ALTER TABLE … DISABLE TRIGGER – 但它需要相同的锁定强度,所以我认为它对你没有多大帮助.在Postgresql 9.4中有一些工作...然后,为了实际删除触发器,我可能会编写一个脚本:BEGIN;LOCK TABLE the_tabl...
  • SQLServer之删除触发器

    万次阅读 2018-10-22 15:53:05
    删除触发器 注意事项 可以通过删除DML触发器或删除触发器表来删除DML触发器。 删除表时,将同时删除与...仅当所有触发器均使用相同的 ON 子句创建时,才能使用一个 DROP TRIGGER 语句删除多个 DDL 触发器。 若要...
  • 一、创建事件触发器1、ddl_command_start - 一个DDL开始执行前被触发;2、ddl_command_end - 一个DLL 执行完成后被触发;3、sql_drop -- 删除一个数据库对象前被触发;create or replace function abort_any_command...
  • 触发器删除创建等操作

    千次阅读 2019-04-23 17:42:56
    一、创建一个简单的触发器 触发器是一种特殊的存储过程,类似于事件函数,SQL Server™ 允许为 INSERT、UPDATE、DELETE 创建触发器,即当在表中插入、更新、删除记录时,触发一个或一系列 T-SQL语句。 触发器可以在...
  • 触发器 创建 删除 等操作

    千次阅读 2017-09-05 21:13:40
    一、创建一个简单的触发器 触发器是一种特殊的存储过程,类似于事件函数,SQL Server™ 允许为 INSERT、UPDATE、DELETE 创建触发器,即当在表中插入、更新、删除记录时,触发一个或一系列 T-SQL语句。 触发器...
  • 一、创建一个简单的触发器 触发器是一种特殊的存储过程,类似于事件函数,SQL Server™ 允许为 INSERT、UPDATE、DELETE 创建触发器,即当在表中插入、更新、删除记录时,触发一个或一系列 T-SQL语句。 触发器可以...
  • [数据库]mysql 触发器的创建 修改 删除02015-12-16 23:00:04//做一个简单的练习,创建一个简单的触发器 完成添加文章的时候,自动加上时间,默认作者 为 ‘日记本的回忆‘show columns from test; //查看表结构//查看...
  • 1、mysql触发器是:在当前的数据库表中设置一个对每行数据的一个监听器,监听相关事件,每当事件发生时。会执行一段由sql完成的一段功能代码。这段功能代码也是sql语句。 2、触发器的元素: 事件,执行代码。 二...
  • 创建触发器 CREATE TRIGGER t_goodsdel – 触发模式,分别有:insert update delete – after 在…之后 – before 在…之前 – on 属于 – goods 基于某一张表触发 AFTER delete ON web_goods – 在每行执行 ...
  • mysql 触发器创建 修改 删除

    千次阅读 2015-12-20 21:27:56
    //做一个简单的练习,创建一个简单的触发器 完成添加文章的时候,自动加上时间,默认作者 为 ‘日记本的回忆‘   show columns from test; //查看表结构   //查看已存在触发器 show triggers \G //将结束...
  • Sqlite 创建触发器删除

    千次阅读 2015-04-27 21:11:59
    今天在移动设备上需要做一个删除功能,两个表ItemBase和ItemSD,其中,ItemBase的id字段和ItemSD的SDPID字段是一对一关系,现在要求删除一条ItemBase的同时也删除对应的ItemSD,于是就想到了使用触发器,写法如下: ...
  • 触发器可以简单理解一种特殊的存储过程...比如可以在user表中删除记录执行后,通过定义一个触发器删除的数据自动添加到历史表中保存以便以后可以进行其他操作。创建触发器的语法如下: CREATE TRIGGER trigger_n.
  • 一个触发器

    2009-04-03 10:55:49
    *设计一个触发器,当删除Employees中的某个雇员时,删除Orders表中的与这个雇员*/ /*相关的一切记录。*/ /*********** 第一步、创建存储过程 ***********/ drop Trigger Employees_Delete go Create ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,021
精华内容 408
关键字:

创建一个删除触发器