我所理解的事件 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
浙公网安备 33010602011771号