第五章 数据库完整性

本文深入解析数据库中的断言和触发器机制。断言是一种通用的约束,确保数据完整性,而触发器则更侧重于事件驱动的处理,两者在数据操作时起到关键作用。尽管MySQL等某些SQL实现不支持断言,但它们都在系统性能和数据一致性方面扮演重要角色。了解这两种机制对于数据库管理和开发至关重要。
摘要由CSDN通过智能技术生成

解释一下断言(assertion)

断言是数据库中一种更具一般性的约束机制,任何对断言中有涉及的关系进行操作都会触发断言的检查,如果断言结果不为真,则该操作会被拒绝执行。

举一个生活中的例子:小A是一家之主,月初他定下了一个小目标“这个月家里的开销要限制在一万元以内”。然后每次他和他妻子花钱的时候都会触发小A的这一句断言,然后进行检查,如果某笔消费使这句话变成假的,则不会进行这笔消费。

PS:有的SQL实现中并没有断言机制,比如MySQL。

PS:断言对于系统性能的影响很大,特别是在断言逻辑复杂的情况下。


解释一下触发器(trigger)

触发器是用户定义在关系表上一类由事件所驱动的特殊过程(procedre)。触发器可以做到和断言以及约束类似的效果,但是相比起断言,触发器更加注重达成或不达成条件后的处理。

若某SQL语句对一张表格进行操作时触发了多个触发器,则会按照

1.执行BEFORE类型的触发器

2.执行触发触发器的SQL语句

3.执行AFTER类型的触发器

为顺序执行。另外,如果有多个同类型(比如多个BEFORE类型的触发器)的触发器被同时触发,一般认为会按照触发器的创建时间为顺序,先创建的先被执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值