Twenty-five chapters: using triggers

@author: Tobin
@date: 2019/11/7 17:07:04

MySQL5 in increased.
Triggers are executed automatically based on condition statement. Only support DELETE, UPATE, INSERT. Best to use only the trigger name in a database.
Trigger only support each event for each table, each table supports up to six.

-- 创建触发器
CREATE TRIGGER newproduct AFTER INSERT ON products
FOR EACH ROW SELECT 'Product added';

-- 删除触发器
DROP TRIGGER newproduct;
-- 使用触发器
-- INSERT触发器
-- 引用一个NEW虚拟的表,访问被插入行,类比this指针
CREATE TRIGGER neworder AFTER INSERT ON orders
FOR EACH ROW SELECT NEW.order_num;
-- 通常将BEFORE用于数据验证和净化

-- DELETE 触发器
-- 引用一个OLD虚拟的表,访问被删除行,只读,不能更改
CREATE TRIGGER deleteorder BEFORE DELETE ON orders
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触发器
-- BEFORE: NEW,AFTER: OLD
CREATE TRIGGER updatevendor BEFORE UPDATE ON vendors
FOR EACH ROW SET NEW.vend_state = Upper(NEW.vend_state);

Guess you like

Origin www.cnblogs.com/zuotongbin/p/11814183.html