MYSQL学习笔记(二十一)使用触发器

时间:2022-05-06 05:02:04
  1. 触发器
    触发器是MYSQL响应以下任意语句而自动执行的一条MYSQL语句:DELETE、INSERT、UPDATE
  2. 创建触发器
    CREATE TRIGGER newproduct AFTER INSERT ON products
    FOR EACH ROW SELECT ‘Product added’;
    CREATE TRIGGER用来创建名为newproduct的新触发器
    AFTER INSERT表示在INSERT语句成功执行后此触发器才执行
    products是触发器关联的表
    FOR EACH ROW代码对每个插入行执行,Product added将对每个插入的行显示一次
  3. 每个表最多支持6个触发器,分别为每条INSERT、UPDATE、DELETE之前和之后
  4. 删除触发器
    DROP TRIGGER newproduct
  5. INSERT触发器
    在INSERT触发器代码内,可引用一个名为NEW的虚拟表,访问被插入的行;
    在BEFORE INSERT触发器中,NEW中的值也可以被更新;
    对于AUTO_INCREMENT列,NEW在INSERT执行之前包含0,在INSERT执行之后包含新的自动生成值。
    CREATE TRIGGER neworder AFTER INSERT ON orders
    FOR EACH ROW SELECT NEW.order_num;
    在插入一个新订单到orders表时,MYSQL生成一个新订单号并保存到order_num中
    触发器从NEW.order_num取得这个值并返回它
  6. 通常BEFORE用于数据验证和净化,保证插入表中数据确实是需要数据。