触发与存储程序
在数据库中,触发器是一个过程(代码段),当表/视图中某些特定事件发生时,它会自动执行。除其他用途外,触发器主要用于维持数据库中的完整性。存储过程是一种可以通过访问关系数据库的应用程序使用的方法。通常,存储过程用作验证数据并控制对数据库的访问的方法。
什么是触发器?
触发器是一个过程(代码段)的前女友ecuted automatically when some specific events occur in a table/view of a database. Among its other uses, triggers are mainly used for maintaining integrity in a database. Triggers are also used for enforcing business rules, auditing changes in the database and replicating data. Most common triggers are Data Manipulation Language (DML) triggers that are triggered when data is manipulated. Some database systems support non-data triggers, which are triggered when Data Definition Language (DDL) events occur. Some examples are triggers that are fired when tables are created, during commit or rollback operations occur, etc. These triggers can be especially used for auditing. Oracle database system supports schema level triggers (i.e. triggers fired when database schemas are modified) such as After Creation, Before Alter, After Alter, Before Drop, After Drop, etc. The four main types of triggers supported by Oracle are Row Level triggers, Column Level triggers, Each Row Type triggers and For Each Statement Type triggers.
什么是存储程序?
存储过程是一种可以通过访问关系数据库的应用程序使用的方法。通常,存储过程用作验证数据并控制对数据库的访问的方法。如果某些数据处理操作需要执行几个SQL语句,则将此类操作作为存储过程实现。调用存储过程时,必须使用呼叫或执行语句。存储过程可以返回结果(例如,从选择语句中的结果)。这些结果可以由其他存储过程或应用程序使用。用于编写存储过程的语言通常支持控制结构,例如何时,for等。取决于所使用的数据库系统,可以使用几种语言来实现存储过程(例如,pl/sql和java,t- oracle,t- oracle和javaMicrosoft SQL Server中的SQL(Transact-SQL)和.NET框架。此外,MySQL使用自己的存储过程。
触发器和存储过程之间有什么区别?
触发器是一个过程(代码段),当某些特定事件发生在数据库的表/视图中时,该过程将自动执行,而存储过程是一种方法,可以通过访问关系数据库的应用程序使用。当触发器应响应的事件发生时,会自动执行触发器。但是要执行存储过程,必须使用特定的调用或执行语句。调试触发器比调试存储程序更难和棘手。当您想确保发生某个事件时发生某些事情时,触发器非常有用。
发表评论