问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql触发器简介及如何创建和删除触发器

发布网友 发布时间:2023-07-28 15:49

我来回答

1个回答

热心网友 时间:2023-12-27 07:15


什么是mysql触发器
需要MySQL 5 对触发器的支持是在MySQL 5中增加的。因此,本章内容适用于MySQL 5或之后的版本。
MySQL语句在需要时被执行,存储过程也是如此。但是,如果你想要某条语句(或某些语句)在事件发生时自动执行,怎么办呢?例如:
1.每当增加一个顾客到某个数据库表时,都检查其电话号码格式是否正确,州的缩写是否为大写;
2.每当订购一个产品时,都从库存数量中减去订购的数量;
3.无论何时删除一行,都在某个存档表中保留一个副本。
所有这些例子的共同之处是它们都需要在某个表发生更改时自动处理。这确切地说就是触发器。触发器是MySQL响应以下任意语句而自动执行的一条MySQL语句(或位于 BEGIN 和 END 语句之间的一组语句):
1.DELETE ;
2.INSERT ;
3.UPDATE 。
其他MySQL语句不支持触发器。


创建mysql触发器
在创建触发器时,需要给出4条信息:
1.唯一的触发器名;
2.触发器关联的表;
3.触发器应该响应的活动( DELETE 、 INSERT 或 UPDATE );
4.触发器何时执行(处理之前或之后)。
保持每个数据库的触发器名唯一 在MySQL 5中,触发器名必须在每个表中唯一,但不是在每个数据库中唯一。这表示同一数据库中的两个表可具有相同名字的触发器。这在其他每个数据库触发器名必须唯一的DBMS中是不允许的,而且以后的MySQL版本很可能会使命名规则更为严格。因此,现在最好是在数据库范围内使用唯一的触发器名。
触发器用 CREATE TRIGGER 语句创建。下面是一个简单的例子:
输入:
create trigger newproct after insert on proucts for each row select 'proct added';分析:CREATE TRIGGER 用来创建名为 newproct 的新触发器。触发器可在一个操作发生之前或之后执行,这里给出了 AFTER INSERT ,所以此触发器将在 INSERT 语句成功执行后执行。这个触发器还指定 FOR EACH ROW ,因此代码对每个插入行执行。在这个例子中,文本 Proct added 将对每个插入的行显示一次。为了测试这个触发器,使用 INSERT 语句添加一行或多行到 procts
中,你将看到对每个成功的插入,显示 Proct added 消息。
仅支持表 只有表才支持触发器,视图不支持(临时表也不支持)。
触发器按每个表每个事件每次地定义,每个表每个事件每次只允许一个触发器。因此,每个表最多支持6个触发器(每条 INSERT 、 UPDATE和 DELETE 的之前和之后)。单一触发器不能与多个事件或多个表关联,所以,如果你需要一个对 INSERT 和 UPDATE 操作执行的触发器,则应该定义
两个触发器。
触发器失败 如果 BEFORE 触发器失败,则MySQL将不执行请求的操作。此外,如果 BEFORE 触发器或语句本身失败,MySQL将不执行 AFTER 触发器(如果有的话)。
删除mysql触发器
现在,删除触发器的语法应该很明显了。为了删除一个触发器,可使用 DROP TRIGGER 语句,如下所示:
输入:
drop trigger newproct ;分析:触发器不能更新或覆盖。为了修改一个触发器,必须先删除它,然后再重新创建。
【相关推荐】
1. mysql免费视频教程
2. MySQL使用字符集和校对顺序使用教程
3. MySQL字符集和校对顺序简介
4. MySQL事务-使用保留点、更改默认的提交行为详解
5. MySQL事务-ROLLBACK,COMMIT用法详解
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 括号里填合适的词语 干冷的( )软软的( ) 盘点八九十年代的经典私家车,看 你好,请问叶县入的居民医保在郑州肿瘤医院住院的报销比例是多少?_百度... 从兰考转诊去河南省肿瘤医院可以报销多少? 郑州肿瘤医院报销比例是多少 河南省项城市的新农合在郑州河南省肿瘤医院的起付线是多少? 河南省肿瘤医院报销政策 阿廖沙在童年一书中自强不息表现在哪里 新店坐790到集美殡仪馆什么站下合适 从厦门塘边到集美殡仪馆打的要多少钱 宝宝毛背心怎么织?有什么方法? 专升本时不同专业能转科么??? EXCEL 什么图表可以表达发生频率。比如某个故障。3个月发生 一次 做成... 关于元宵节的儿歌童谣有哪些 晚白垩纪是恐龙最后的王朝吗? 我到昆明旧货市场,坐一号线从哪下 从新南界旧货市场到环湖路昆明职业艺术学院坐几路公交 土桥新南界旧货市场到拓东路世博酒店怎么走 请问从土桥新男界旧货交易市场到一二一大街的云南民族大学需乘坐几... 从昆明长水国际机场到土桥新南界综合市场怎么坐公交车 ...定义触发器,关于mysql触发器(tigger),求指点 数据库中存储过程和触发器有什么区别 橙子孕妇可以吃吗 任家沟村位于哪个市 小说中景物描写“山间暴雨” 下级跟同级领导较高的会议叫什么 微信商城和小程序商城有哪些不同 上级党组织参加下级党组织生活会的规定出自哪里 南京到扬州有高铁吗 南京到扬州高铁 南京到沭阳有高铁吗 南京到盐城市滨海县有高铁吗? 花开了心情不好的表达句子 有次我心情不好看到姹紫嫣红的花作文150字 [一件小事]是不是[鲁迅全集作品选]的文章? 慢性胃炎怎么养胃,亦舒堂火麻籽油养胃效果怎么样? 慢性胃炎用火麻仁油来调理可以恢复吗? 我有慢性胃炎,早上空腹喝橄榄油有帮助吗? 我有慢性胃炎,喝芝麻油对我胃有好处吗 女儿墙开裂危害?