【数据库】MyQSL数据完整性
不知道怎么取标题,简单提一下数据库的完整性实现问题
在MySQL中一种不用写trigger也可以实现级联的方式——直接使用外键实现参照完整性(当然trigger的功能不只是实现级联修改/删除,还可以实现一些动态完整性约束

除此之外还可以通过check约束实现用户定义完整性
alter table score add constraint dcheck
check (Degree>=0)
trigger比上述的外键和check约束更为灵活
- trigger的格式:
CREATE TRIGGER [trigger_name] [AFTER|BEFORE] [INSERT|UPDATE|DELETE] ON [talbe_name] FOR EACH ROW
BEGIN
SQL STATEMENT;
END;
- BEFORE|AFTER表示了触发器的行动时间,触发器在每行插入表之前|后被激活。
- INSERT|UPDATE|DELETE表示激活触发器的事件
- FOR EACH ROW后的语句定义了触发器的具体部分
- trigger特点:表级自动调用
- MySQL trigger要求不完全归纳(穷举试错+官方 docs
- 不允许在After条件下改变New
ERROR 1362: Updating of NEW row is not allowed in after trigger
CREATE DEFINER=`root`@`localhost` TRIGGER `test`.`score_BEFORE_INSERT` BEFORE INSERT ON `score` FOR EACH ROW
BEGIN
IF new.Degree < 60 then
set new.Degree = 60;
end if;
END
- AFTER的用法
set @sum=0; CREATE DEFINER=`root`@`localhost` TRIGGER `test`.`score_AFTER_INSERT` AFTER INSERT ON `score` FOR EACH ROW
BEGIN
SET @sum = @sum + 1;
END insert into Score values(103,'9-888',92);
insert into Score values(103,'6-166',92); select @sum as 'total amount';
此时sum为2
【数据库】MyQSL数据完整性的更多相关文章
- SQL server 数据库的数据完整性
存储在数据库中的所有数据值均正确的状态.如果数据库中存储有不正确的数据值,则该数据库称为已丧失数据完整性. 详细释义 数据库中的数据是从外界输入的,而数据的输入由于种种原因,会发生输入无效或 错误信息 ...
- MYSQL数据库的数据完整性
#转载请联系 数据库中存储的数据应该符合我们的预期, 这就是数据完整性. 那么如何实现数据完整性? 我们通过以下两方面来实现数据的完整性: 数据类型: 存储在数据库中的所有数据值均正确的状态.如果数据 ...
- MySQL数据库:数据完整性及约束的应用
数据完整性 1.域完整性:---------匹配完整性:非空.缺省 字段/列 2.实体完整性:-------匹配完整性:主键.唯一键 记录/行 3.引用完整性:-------匹配完整性:外键 表与表之 ...
- SQL Server数据库设计规范
数据库设计规范 1.简介 数据库设计是指对一个给定的应用环境,构造最优的数据库模式,建立数据库及其他应用系统,使之能有效地存储数据,满足各种用户的需求.数据库设计过程中命名规范很是重要,命名规范合理的 ...
- SQL Server 数据库设计规范
数据库设计规范 1.简介 数据库设计是指对一个给定的应用环境,构造最优的数据库模式,建立数据库及其他应用系统,使之能有效地存储数据,满足各种用户的需求.数据库设计过程中命名规范很是重要,命名规范合理的 ...
- 【SQL】数据库中的五种约束
#五大约束 1.主键约束(Primay Key Coustraint) 唯一性,非空性 2.唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个 3.检查约束 (Check ...
- JSP学习笔记(6)-使用数据库
1.连接MySQL数据库 1.1.JDBC JDBC(Java Database Connectivity)提供了访问数据库的API,由一些Java类和接口组成,是Java运行平台核心库中的一部分.用 ...
- CAP理论和BASE理论及数据库的ACID中关于一致性及不同点的思考
CAP定理又被称作是布鲁尔定理,是加州大学伯克利分销计算机科学家里克在2000年提出,是分布式理论基础. CAP:是分布式系统的理论基础 [一致性 可用性 分区容错性] BASE理论是对CAP中 ...
- sql事务(Transaction)用法介绍及回滚实例
sql事务(Transaction)用法介绍及回滚实例 事务(Transaction)是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位.通过事务, S ...
随机推荐
- pygame库的学习
第一天:我学习了如何设置窗口和加载图片,以及加载音乐.这个库真的很有意思啊,打算py课设就拿这个写了. 代码: import pygamefrom sys import exit pygame.ini ...
- zabbix proxy配置实战案例
zabbix proxy配置实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.zabbix proxy概述 上一篇博客我们分享了zabbix agent有两种工作模式,即 ...
- 【pwnable.tw】 death_note
题目逻辑比较简单,大概增加和删除和打印三个功能: show函数中,打印各日记内容,由于这题没有给出libc文件,应该不需要泄露地址,估计用处不大: delete函数中,正常的free,然后指针修改为n ...
- jvm问题汇总
1.软引用.弱引用.虚引用-他们的特点及应用场景?
- 免杀PHP一句话一枚
免杀PHP一句话shell,利用随机异或免杀D盾,免杀安全狗护卫神等 <?php class VONE { function HALB() { $rlf = 'B' ^ "\x23&q ...
- JS:利用for循环进行数组去重
<script> var a = [1, 3, 2, 4, 5, 3, 2, 1, 4, 6, 7, 7, 6, 6]; //示例数组 var b = []; for(var i = ...
- leetcode349 350 Intersection of Two Arrays & II
""" Intersection of Two Arrays Given two arrays, write a function to compute their in ...
- Jmeter安装插件Stepping Thread Group
下载链接:https://jmeter-plugins.org/downloads/old/ 下载解压后,将JMeterPlugins-Standard.jar包放在jmeter安装目录的jmeter ...
- postman带上token对接口进行测试
根据验证码进行登陆,登录之后返回token.然后请求其他接口时在header头中带上token访问其他接口进行测试 账户信息输入验证码 登陆成功,看到返回的token 我们这个项目可以刷新一下toke ...
- 获取指定进程号,并kill掉
直接上案例: 例子:获取nginx进程 方法:$ps -aux |grep nginx |grep -v grep |awk '{print $2}' 或者 $ps -ef |grep nginx ...