从前有匹马叫代码
心若没有栖息的地方,到哪里都是流浪

我所理解的事件 MYSQL触发器 就好比是 JavaScript 中的 Object.defineProperty,通过观察某些行为,然后做些事情

创建触发器

DELIMITER $$

CREATE TRIGGER payment_after_insert
    AFTER INSERT ON payments
    FOR EACH ROW
BEGIN
    UPDATE invoices
    SET payment_total = payment_total + NEW.amount
    WHERE invoice_id = NEW.invoice_id;
END $$

DELIMITER ;

解析:

  首先  DELIMITER $$   修改分隔符

  然后  CREATE TRIGGER payment_after_insert  创建一个名为 payment_after_insert 触发器

  这个触发器执行的时机是在  AFTER INSERT ON payments

  触发器的执行对象是?  FOR EACH ROW

  触发器要做什么? BEGIN ... END$$

  触发器做了什么?

    UPDATE invoices
    SET payment_total = payment_total + NEW.amount
    WHERE invoice_id = NEW.invoice_id;


如何查看已经创建的触发器?
SHOW TRIGGERS

SHOW TRIGGERS LIKE 'payment%'

如何删除已经创建的触发器?

 

DROP TRIGGER IF EXIST 'payment_after_insert'

IF EXIST 如果存在就怎样怎样


 

文中所涉及数据库数据均为 Mosh 课程中的虚拟数据,站在巨人的肩膀上学习
Mosh MYSQL Courses IN BiliBili

  

 

posted on 2021-09-20 21:27  从前有匹马叫代码  阅读(71)  评论(0)    收藏  举报