触发器与光标
在数据库中,触发器是当表/视图中发生某些特定事件时自动执行的过程(代码段)。在它的其他用途中,触发器主要用于维护数据库的完整性。游标是数据库中用来遍历数据库记录的控制结构。它与许多编程语言提供的迭代器非常相似。
什么是触发器?
触发器是当数据库的表/视图中发生某些特定事件时自动执行的过程(代码段)。在它的其他用途中,触发器主要用于维护数据库的完整性。触发器还用于强制执行业务规则、审核数据库中的更改和复制数据。最常见的触发器是数据操作语言(datamanipulationlanguage,DML)触发器,在数据**纵时触发。一些数据库系统支持非数据触发器,这些触发器在数据定义语言(DDL)事件发生时触发。一些示例是在创建表时、在执行提交或回滚操作等过程中激发的触发器。这些触发器特别可用于审核。Oracle数据库系统支持模式级触发器(即修改数据库模式时触发的触发器),如创建后、更改前、更改后、删除前、删除后等。Oracle支持的四种主要触发器类型是行级触发器、列级触发器、列级触发器,每行类型触发器和For Each语句类型触发器。
什么是光标?
游标是数据库中用来遍历数据库记录的控制结构。它与许多编程语言提供的迭代器非常相似。除了遍历数据库中的记录之外,游标还可以帮助数据检索、添加和删除记录。通过定义正确的方式,还可以使用光标向后遍历。当SQL查询返回一组行时,这些行实际上是使用游标处理的。在使用游标之前,需要声明并分配一个名称。然后需要使用OPEN命令打开光标。此操作将光标放在记录结果集的第一行之前。然后,游标必须执行FETCH操作才能将一行数据真正地放入应用程序。最后,必须使用CLOSE操作关闭光标。关闭的光标可以再次打开。
触发器和游标有什么区别?