首页 理论教育 数据库高级应用技术:触发器原理

数据库高级应用技术:触发器原理

时间:2023-11-03 理论教育 版权反馈
【摘要】:这样做的目的是,一旦触发器遇到了强迫它中止的语句被执行时,删除的那些行可以从删除表中得以还原。触发器对数据约束的原理是逐行检查。如果表中数据比较大,达到百万级的情况,触发器这个逐行检查原理会严重影响系统的性能,因此在使用触发器时需慎重评估其性能风险。

数据库高级应用技术:触发器原理

触发器具有强大的功能,每个触发器有插入和删除两个特殊的表,它有以下几个特点:

(1)这两个表是逻辑表,并且是由系统管理的,存储在内存中,不是存储在数据库中,因此不允许用户直接对其修改。

(2)这两个表的结构总是与被该触发器作用的表有相同的表结构。

(3)这两个表动态驻留在内存中,当触发器工作完成时,这两个表也被删除。这两个表主要保存因用户操作而被影响到的原数据值或新数据值。

(4)这两个表是只读的,且只在触发器内部可读,即用户不能向这两个表写入内容,但可以在触发器中引用表中的数据。(www.xing528.com)

对一个定义了插入类型触发器的表来讲,一旦对该表执行了插入操作,那么对该表插入的所有行来说,都有一个相应的副本级存放到插入表中,即插入表就是用来存储原表插入的新数据行。

对一个定义了删除类型触发器的表来讲,一旦对该表执行了删除操作,则将所有的被删除的行存放至删除表中。这样做的目的是,一旦触发器遇到了强迫它中止的语句被执行时,删除的那些行可以从删除表中得以还原。

需要特别注意的是,更新操作包括两个部分动作:先将旧的内容删除,然后将新值插入。因此,对一个定义了更新类型触发器的表来讲,当执行更新操作时,在删除表中存放修改之前的旧值,然后在插入表中存放修改之后的新值。

触发器对数据约束的原理是逐行检查。当在数据表上执行插入、删除和更新操作,触发器将会被触发执行时,每条SQL语句的操作哪怕只影响数据库中的一条记录,其也会检查此次操作对其他记录的影响,会对表中的所有记录按触发器上所定义的约束进行全方位的检查。如果表中数据比较大,达到百万级的情况,触发器这个逐行检查原理会严重影响系统的性能,因此在使用触发器时需慎重评估其性能风险。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈