mysql触发器的缺陷有哪些

这篇文章主要介绍“MySQL触发器的缺陷有哪些”,在日常操作中,相信很多人在mysql触发器的缺陷有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql触发器的缺陷有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、网站设计、昭平网络推广、微信小程序开发、昭平网络营销、昭平企业策划、昭平品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供昭平建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

说明

1、使用触发器实现的业务逻辑在出现问题时很难定位。

尤其是涉及多个触发器时,会使后期维护困难。

2、大量使用触发器容易导致代码结构混乱。

增加程序的复杂性。

3、如果需要更改的数据量大,触发器的执行效率会很低。

4、触发器的隐式调用容易被忽视。

很难排查问题。

实例

# 创建表 创建触发器
mysql> CREATE TABLE account (acct_num INT, amount DECIMAL(10,2));
Query OK, 0 rows affected (0.03 sec)
mysql> INSERT INTO account VALUES(137,14.98),(141,1937.50),(97,-100.00);
 
mysql> delimiter //
mysql> CREATE TRIGGER upd_check BEFORE UPDATE ON account
       FOR EACH ROW
       BEGIN
           IF NEW.amount < 0 THEN
               SET NEW.amount = 0;
           ELSEIF NEW.amount > 100 THEN
               SET NEW.amount = 100;
           END IF;
       END;//
mysql> delimiter ;
 
# 验证触发器作用
mysql> select * from account;
+----------+---------+
| acct_num | amount  |
+----------+---------+
|      137 |   14.98 |
|      141 | 1937.50 |
|       97 | -100.00 |
+----------+---------+
3 rows in set (0.00 sec)
 
mysql> update account set amount = 114.98 where acct_num = 137;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0
 
mysql> select * from account;
+----------+---------+
| acct_num | amount  |
+----------+---------+
|      137 |  100.00 |
|      141 | 1937.50 |
|       97 | -100.00 |
+----------+---------+
3 rows in set (0.00 sec)
 
# 查看触发器
mysql> show triggers;
 
# 删除触发器
mysql> drop trigger if exists upd_check;
 
# 查看数据库实例中所有触发器
SELECT
a.TRIGGER_SCHEMA,
a.TRIGGER_NAME,
a.ACTION_TIMING,
a.EVENT_OBJECT_TABLE,
a.EVENT_MANIPULATION
FROM
information_schema.`TRIGGERS` a
WHERE
a.TRIGGER_SCHEMA NOT IN ( 'information_schema', 'performance_schema', 'mysql', 'sys' );
  
delimiter // 设置MySQL执行结束标志,默认为;

到此,关于“mysql触发器的缺陷有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


当前题目:mysql触发器的缺陷有哪些
文章网址:http://cdiso.cn/article/jpjoje.html

其他资讯