触发器的学习

触发器是当表中的内容发生增删改时,自动触发的代码。
触发器包含的三要素
1.事件类型:增(insert)删(delete)改(update)
2.触发时间:事件触发的前(before)后(after)
3.触发对象
每张表不能存在两张相同事件类型和触发时间的触发器,即最多只能拥有3*2种触发器
触发器语句:

create trigger + 触发器名称 + 触发器时间 + 事件类型 on 表名 for each row
begin -- 代表触发器内容开始
-- 触发器内容主体,每行用分号结尾
end -- 代表触发器内容结束

还有两记录名:
1.OLD代表是旧记录,也就是当前记录的状态,插入时没有OLD;
2.NEW代表是新记录,也就是假设操作发生之后记录的状态,删除时没有NEW。
取值为: OLD/NEW . 字段名

下面是数据实例:
表一 user_product:


user_product

表二 user_first:


user_first

逻辑陈述:当删除user_product表中的数据时,根据user_id关联user_first的id,删除user_first对应行。
创建触发器:

CREATE TRIGGER after_product_del AFTER DELETE ON user_product for each ROW
BEGIN
    DELETE from user_first WHERE id = OLD.user_id;
END

执行user_product删除操作:

DELETE from user_product where id = 3

结果:


image.png
image.png

如需查看触发器,可用show triggers查看。也可在对应表的设计表中查看。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 观其大纲 page 01 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 M...
    周少言阅读 3,176评论 0 33
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,537评论 0 13
  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 7,857评论 5 116
  • 生活总是比戏精彩。 公交车是六点半的,下楼的时候二十五分,走路过去是十分钟,跑步过去可能来得及。于是,睡眼惺忪中,...
    翟海莹阅读 217评论 0 0
  • 济阴纲目,话说老师果然是一代比一代敷衍啊 不知道师兄是不是グッ!(๑•̀ㅂ•́)و✧
    王贱贱述阅读 79评论 2 0