Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySQL触发器

MySQL数据库的触发器的使用

作者:阿柠xn​​​​​​​

这篇文章主要介绍了MySQL数据库的触发器的使用,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下

使用触发器

触发器

发生什么事情之后或之前,会自动执行某条语句,这就是触发器

创建触发器

创建触发器要给出的4条关键信息:

CREATE TRIGGER语句创建触发器

CREATE TRIGGER newproduct AFTER INSERT ON products
FOR EACH ROW
SELECT 'Product added';

FOR EACH ROW 代码对每个插入行执行。

删除触发器

DROP TRIGGER newproduct;

使用触发器

INSERT触发器

INSERT触发器在INSERT语句执行之前或之后执行。需要知道一下几点:

CREATE TEIGGER neworder  AFTER INSERT ON orders
FOR EACH ROW SELECT NEW.order_num;

这个触发器讲了咋个事情呢?你不要觉得云里雾里的,我们知道这个INSERT是不会显示什么信息出来的,所以我们加一个 AFTER INSERT

就是你只要一插入,我们就读出来这个订单号显示出来。就是这么一个功能,你不要想的太复杂了。所以你只能AFTER昂,BEFORE你能读出来个啥。

DELETE触发器

你也需要知道几点:

例:演示使用OLD保存将要删除的行到一个存档表中。

CREATE TRIGGER deleteorder BEFORE DELETE ON oreders
FOR EACH ROW
BEGIN 
    INSERT INTO archive_orders(order_num,order_date,cust_id)
    VALUES(OLD.order_num,OLD.order_date,OLD.cust_id);
END;

UPDATE触发器

注意几点:

例:保证州名缩写总是大写

CREATE TRIGGER updatevendor BEFORE UPDATE ON vendors
FOR EACH ROW SET NEW.vend_state = Upper(New.vend_state); 

⭕️这个例子我想说一下,它这个的话就意味着我们对这个NEW的改变是会影响到实际表中的。这点应该注意到。

触发器的进一步介绍

MySQL触发器是不支持CALL语句的,这是十分遗憾的,所需的存储过程的代码需要复制到触发器内。

到此这篇关于MySQL数据库的触发器的使用的文章就介绍到这了,更多相关MySQL触发器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文