`

触发器基本语法(适用于insert, update, delete)

阅读更多
一.触发器概述 
触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由个事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。

二.触发器介绍
触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。数据库触发器有以下的作用:
* 安全性。可以基于数据库的值使用户具有操作数据库的某种权利。
# 可以基于时间限制用户的操作,例如不允许下班后和节假日修改数据库数据。
# 可以基于数据库中的数据限制用户的操作,例如不允许股票的价格的升幅一次超过10%。
* 审计。可以跟踪用户对数据库的操作。
# 审计用户操作数据库的语句。
# 把用户对数据库的更新写入审计表。
* 实现复杂的数据完整性规则。 # 实现非标准的数据完整性检查和约束。触发器可产生比规则更为复杂的限制。与规则不同,触发器可以引用列或数据库对象。例如,触发器可回退任何企图吃进超过自己保证金的期货。
# 提供可变的缺省值。
* 实现复杂的非标准的数据库相关完整性规则。触发器可以对数据库中相关的表进行连环更新。# 在修改或删除时级联修改或删除其它表中的与之匹配的行。
# 在修改或删除时把其它表中的与之匹配的行设成NULL值。
# 在修改或删除时把其它表中的与之匹配的行级联设成缺省值。

# 触发器能够拒绝或回退那些破坏相关完整性的变化,取消试图进行数据更新的事务。当插入一个与其主健不匹配的外部键时,这种触发器会起作用。

* 同步实时地复制表中的数据。
* 自动计算数据值,如果数据的值达到了一定的要求,则进行特定的处理。例如,如果公司的帐号上的资金低于5万元则立即给财务人员发送警告数据。

三.触发器语法:

create  trigger 触发器名 触发时间 触发事件
on 表名
[for each row]
pl/sql 语句

其中:
触发器名:触发器对象的名称。由于触发器是数据库自动执行 的,因此该名称只是一个名称,没有实质的用途。
触发时间:指明触发器何时执行,该值可取:
before---表示在数据库动作之前触发器执行;
after---表示在数据库动作之后出发器执行。
触发事件:指明哪些数据库动作会触发此触发器:
insert:数据库插入会触发此触发器;
update:数据库修改会触发此触发器;
delete:数据库删除会触发此触发器;

表 名:数据库触发器所在的表。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zzzmmmkkk/archive/2009/08/01/4400557.aspx
分享到:
评论

相关推荐

    sqlserver 触发器学习(实现自动编号)

    总结常用基本点如下: 1、触发器有两种... 2、DML触发器分类:Insert触发器、Delete触发器、Update触发器、上面任意类型混合。 3、触发器创建语法: 代码如下: CREATE TRIGGER <trigger> ON <table> {{{FOR|AFTER} <

    SQLSever中的触发器基本语法与作用

    诸如:update、insert、delete这些操作的时候,系统会自动调用执行该表上对应的触发器。SQL Server 2005中触发器可以分为两类:DML触发器和DDL触发器,其中DDL触发器它们会影响多种数据定义语言语句而激发,这些语句...

    Gbase 8s触发器介绍.doc

    触发事件有 4 类:INSERT, UPDATE, DELETE, SELECT。 * 目标表:当在目标表上发生触发事件时,定义在该表上的触发器被激活。 * 触发时间:GBase 8s 支持 3 种触发时间:BEFORE, AFTER, FOR EACH ROW。 * 触发条件:...

    Oraclet中的触发器

    ORACLE事件指的是对数据库的表进行的INSERT、UPDATE及DELETE操作或对视图进行类似的操作。ORACLE将触发器的功能扩展到了触发ORACLE,如数据库的启动与关闭等。 1 DML触发器:ORACLE可以在DML语句进行触发,可以在...

    SQL 触发器详解及代码演示

    触发器主要用于监视某个表的insert、update以及delete等更新操作,这些操作可以分别激活该表的insert、update或者delete类型的运行语句,从而实现数据的自动维护。 2. 创建触发器 创建一个触发器的语法如下: create ...

    Oracle触发器trigger详解

    每当一个特定的数据操作语句(insert update delete)在指定的表上发出时,Oracle自动执行触发器中定义的语句序列。 举个简单的例子: 当员工表中新增一条记录后,自动打印“成功插入新员工” create or replace ...

    mysql触发器详解!!!

    一个表中的多个同类触发器(INSERT、UPDATE 或 DELETE)允许采取多个不同的对策以响应同一个修改语句。 CREATE 语句,如:CREATE DATABASE、CREATE TABLE、CREATE INDEX 等。 ALTER 语句,如:ALTER DATABASE、ALTER...

    mysql 触发器创建与使用方法示例

    当insert delete update设置触发器之后,执行insert delete update操作就会自动触发设置的内容。 一张表最大能有6个触发器(3*2,三种操作*两种时间(before|after))。 创建触发器  语法: create trigger 触发器名...

    SQL SERVER中各类触发器的完整语法及参数说明

    语法:Trigger on an INSERT, UPDATE, or DELETE statement to a table or view (DML Trigger) CREATE TRIGGER [ schema_name . ]trigger_name ON { table | view } [ WITH <dml> [ ,…n ] ] { FOR | AFTER | ...

    MySQL 触发器详解及简单实例

    { INSERT | UPDATE | DELETE } –同样也能设定触发的事件:它们可以在执行insert、update或delete的过程中触发。 ON <表名称> –触发器是属于某一个表的:当在这个表上执行插入、 更新或删除操作的时候就导致...

    ORACLE和SQL Server的语法区别

    1. 验证所有 SELECT、INSERT、UPDATE 和 DELETE 语句的语法是有效的。进行任何必要的修改。 2. 把所有外部联接改为 SQL-92 标准外部联接语法。 3. 用相应 SQL Server 函数替代 Oracle 函数。 4. 检查所有的比较...

    oracle和SQL的语法区别

    1. 验证所有 SELECT、INSERT、UPDATE 和 DELETE 语句的语法是有效的。进行任何必要的修改。 2. 把所有外部联接改为 SQL-92 标准外部联接语法。 3. 用相应 SQL Server 函数替代 Oracle 函数。 4. 检查所有的比较...

    MySQL 触发器定义与用法简单实例

    { INSERT | UPDATE | DELETE } –同样也能设定触发的事件:它们可以在执行insert、update或delete的过程中触发。 ON 表名称 –触发器是属于某一个表的:当在这个表上执行插入、 更新或删除操作的时候就导致触发器的...

    MySQL中触发器入门简单实例与介绍

    trigger_event标识触发事件,用insert,update和delete替换; tbl_name标识建立触发器的表名,即在哪张表上建立触发器; trigger_stmt是触发器程序体;触发器程序可以使用begin和end作为开始和结束,中

    Oracle_PLSQL_语法详细手册

    oracle_PLSQL_语法详细手册 目 录 第一部分 SQL语法部分 3 一、 CREATE TABLE 语句 3 二、 CREATE SEQUENCE语句 5 三、 CREATE VIEW语句 6 四、 INSERT语句: 7 五、 UPDATE语句: 9 六、 DELETE语句: 10 七、 ...

    mysql数据库的基本操作语法

    相当于DDL中的delete语句, 但是truncate比delete语句的速度要快得多。但是truncate不能带条件删除指定数据,只会删除所有的数据。如果删除的表有外键, 删除的速度类似于delete。但新版本的MySQL中truncate的速度比...

    oracle触发器使用笔记

    :NEW 和:OLD使用方法和意义,new 只出现在insert和update时,old只出现在update和delete时。在insert时new表示新插入的行数据,update时new表示要替换的新数据、old表示要被更改的原来的数据行,delete时old表示要被...

    T-SQL语法详解

    T-SQL语法 一、数据库存储结构 二、数据库表存储结构 三、约 束 四、规 则 五、默认 六、索 引 七、视图 ...九、select,delete,update,insert语句使用方法 十、函数数据整理 十一、游标 十二、存储过程

    MySQL进阶三板斧(三)看清“触发器 (Trigger)”的真实面目

    二、触发器语法 1. 创建语法四要素 2. 语法公式 3. 语法参数说明 4. NEW 与 OLD关键字详解 三、实际应用 1. 数据准备 2. 使用案例 # Insert触发器 – 级联插入 # Delete触发器 – 级联删除 # Update触发器 – 实时...

    T-SQl语法大全

    * `GRANT`:授予用户访问权限,例如 SELECT、INSERT、UPDATE、DELETE 等。 * `DENY`:拒绝用户访问权限。 * `REVOKE`:解除用户访问权限。 事务控制语言(TCL) * `COMMIT`:结束当前事务,确保数据的一致性。 * `...

Global site tag (gtag.js) - Google Analytics