mysql触发器的作用及语法
触发器是一种特殊的存储过程,它在插入,删除或改动特定表中的数据时触发运行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。
数据库触发器有下面的作用:
1.安全性。能够基于数据库的值使用户具有操作数据库的某种权利。
# 能够基于时间限制用户的操作,比如不同意下班后和节假日改动数据库数据。
# 能够基于数据库中的数据限制用户的操作,比如不同意股票的价格的升幅一次超过10%。
2.审计。能够跟踪用户对数据库的操作。
# 审计用户操作数据库的语句。
# 把用户对数据库的更新写入审计表。
3.实现复杂的数据完整性规则
# 实现非标准的数据完整性检查和约束。触发器可产生比规则更为复杂的限制。与规则不同,触发器能够引用列或数据库对象。比如,触发器可回退不论什么企图吃进超过自己保证金的期货。
# 提供可变的缺省值。
4.实现复杂的非标准的数据库相关完整性规则。触发器能够对数据库中相关的表进行连环更新。比如,在auths表author_code列上的删除触发器可导致对应删除在其他表中的与之匹配的行。
# 在改动或删除时级联改动或删除其他表中的与之匹配的行。
# 在改动或删除时把其他表中的与之匹配的行设成NULL值。
# 在改动或删除时把其他表中的与之匹配的行级联设成缺省值。
# 触发器可以拒绝或回退那些破坏相关完整性的变化,取消试图进行数据更新的事务。当插入一个与其主健不匹配的外部键时,这样的触发器会起作用。比如,可以在books.author_code 列上生成一个插入触发器,假设新值与auths.author_code列中的某值不匹配时,插入被回退。
5.同步实时地复制表中的数据。
6.自己主动计算数据值,假设数据的值达到了一定的要求,则进行特定的处理。比如,假设公司的帐号上的资金低于5万元则马上给財务人员发送警告数据。
相关文章
- Docker-compose部署MySQL
- 【MySQL】MySQL多实例开机自动重启
- 【MySQL】Could not initialize master info structure
- 【Mysql】Mysql root用户误删了或只剩下没有任何操作权限的用户怎么办
- 用Navicat连接mysql报错:2003-Can't connect to MySql server on '10.100.0.109'(10039)
- Mysql: 强制走索引:mysql between 日期索引 索引问题-日期索引使用
- mysql中的多行查询结果合并成一个
- Java通过mysql-connector-java-8.0.11连接MySQL Server 8.0遇到的几个问题
- mysql 必知必会整理—sql 正则表达[五]
- PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)--续
- connection to dat Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
- [转]分析MySQL数据类型的长度【mysql数据字段 中length和decimals的作用!熟悉mysql必看】
- CentOS下httpd下php 连接mysql 本机可以,外网报错Could not connect: Can't connect to MySQL server on '127.0.0.1' (13)2003 原因解析
- MySQL数据库排序选择的作用和该如何选择编码格式
- Mysql 如果有多个可选条件怎么加索引_MySQL|mysql-索引
- MySQL存储过程(三)——存储过程分支流控语句
- Starting MySQL. ERROR! The server quit without updating PID file (/data/mysql/mysql.pid).
- 【高可用MySQL解决方案】centos7配置mysql主从复制
- SpringBoot配置MyBatis的sql执行超时时间(mysql)
- MySQL Study之--Mysql无法启动“mysql.host”
- Mysql的mysqldump详解 mysql数据库备份和导入
- MySQL主从复制和读写分离
- mysql触发器的作用及语法
- mysql 数据库 分表后 怎么进行分页查询?Mysql分库分表方案?
- Mysql之修改mysql的视图定义者
- CDH中MYSQL的作用
- MySQL 一文带你详解 mysql binlog
- MYSQL分页limit速度太慢优化方法
- MySQL报错Column count of mysql.user is wrong. Expected 43, found 42. Created with MySQL 50568, now run