首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器

2012-07-20 
oracle 触发器的种类和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的种类和触

oracle 触发器的种类和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
oracle 触发器的种类和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器 ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器

    ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
      ld.字段名或:new.字段名
      * 触发器体内禁止使用COMMIT、ROLLBACK、SAVEPOINT语句,也禁止直接或间接地调用含有上述语句的存储过程。
      定义一个触发器时要考虑上述多种情况,并根据具体的需要来决定触发器的种类。
      DML触发器的创建
      创建DML触发器需要CREATE TRIGGER系统权限。创建DML触发器的语法如下:
      CREATE [OR REPLACE] TRIGGER 触发器名
      {BEFORE|AFTER|INSTEAD OF} 触发事件1 [OR 触发事件2...]
      ON 表名
      WHEN 触发条件
      [FOR EACH ROW]
      DECLARE
      声明部分
      BEGIN
      主体部分
      END;
      其中:
      OR REPLACE:表示如果存在同名触发器,则覆盖原有同名触发器。
      BEFORE、AFTER和INSTEAD OF:说明触发器的类型。
      WHEN 触发条件:表示当该条件满足时,触发器才能执行。
      触发事件:指INSERT、DELETE或UPDATE事件,事件可以并行出现,中间用OR连接。
      对于UPDATE事件,还可以用以下形式表示对某些列的修改会引起触发器的动作:
      UPDATE OF 列名1,列名2...
      ON 表名:表示为哪一个表创建触发器。
      FOR EACH ROW:表示触发器为行级触发器,省略则为语句级触发器。
      触发器的创建者或具有DROP ANY TIRGGER系统权限的人才能删除触发器。删除触发器的语法如下:
      DROP TIRGGER 触发器名
      可以通过命令设置触发器的可用状态,使其暂时关闭或重新打开,即当触发器暂时不用时,可以将其置成无效状态,在使用时重新打开。该命令语法如下:
      ALTER TRIGGER 触发器名 {DISABLE|ENABLE}
      其中,DISABLE表示使触发器失效,ENABLE表示使触发器生效。
      同存储过程类似,触发器可以用SHOW ERRORS 检查编译错误。
      行级触发器的应用
      在行级触发器中,SQL语句影响的每一行都会触发一次触发器,所以行级触发器往往用在对表的每一行的操作进行控制的场合。若在触发器定义中出现FOR EACH ROW子句,则为语句级触发器。
      【训练1】? 创建包含插入、删除、修改多种触发事件的触发器DML_LOG,对EMP表的操作进行记录。用INSERTING、DELETING、UPDATING谓词来区别不同的DML操作。
      在创建触发器之前,需要先创建事件记录表LOGS,该表用来对操作进行记录。该表的字段含义解释如下:
      LOG_ID:操作记录的编号,数值型,它是该表的主键,由序列自动生成。
      LOG_TABLE:进行操作的表名,字符型,非空,该表设计成可以由多个触发器共享使用。比如我们可以为dept表创建类似的触发器,同样将操作记录到该表。
      LOG_DML:操作的动作,即INSERT、DELETE或UPDATE三种之一。
      LOG_KEY_ID:操作时表的主键值,数值型。之所以记录表的主键,是因为主键是表的记录的惟一标识,可以识别是对哪一条记录进行了操作。对于emp表,主键是empno。
      LOG_DATE:操作的日期,日期型,取当前的系统时间。
      LOG_USER:操作者,字符型,取当时的操作者账户名。比如登录SCOTT账户进行操作,在该字段中,记录账户名为SCOTT。
      步骤1:在SQL*Plus中登录STUDENT账户,创建如下的记录表LOGS:
      ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
        ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
          ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
            ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
              ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                  ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                    ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                      ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                        ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                          ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                            ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                              ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                  ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                    ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                      ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                        ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                          ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                            ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                              ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                  ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                    ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                      ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                        ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                          ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                            ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                              ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                  ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                    ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                      ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                        ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                          ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                            ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                              ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                  ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                    ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                      ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                        ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                          ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                            ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                              ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                  ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                    ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                      ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                        ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                          ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                            ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                              ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                  ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                    ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                      ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                        ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                          ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                            ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                              ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                                ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                                  ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                                    ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                                      ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                                        ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                                          ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                                            ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                                              ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                                                ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                                                  ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                                                    ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                                                      ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                                                        ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                                                          ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                                                            ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                                                              ?oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器oracle 触发器的类别和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
                                                                                                                                                                已删除 1 行。已创建 1 行。已更新 1 行。提交完成。
                                                                                                                                                                步骤4:检查emp表和employee表中被插入、删除和更新的雇员。
                                                                                                                                                                运行结果略,请自行验证。
                                                                                                                                                                ? 说明:在触发器中判断触发事件,根据不同的事件对employee表进行不同的操作。
                                                                                                                                                                【练习1】创建一个emp表的触发器EMP_TOTAL,每当向雇员表插入、删除或更新雇员信息时,将新的统计信息存入统计表EMPTOTAL,使统计表总能够反映最新的统计信息。
                                                                                                                                                                统计表是记录各部门雇员总人数、总工资的统计表,结构如下:
                                                                                                                                                                部门编号 number(2)
                                                                                                                                                                总人数 number(5)
                                                                                                                                                                总工资 number(10,2)
                                                                                                                                                                练习
                                                                                                                                                                1. 下列有关触发器和存储过程的描述,正确的是:
                                                                                                                                                                A. 两者都可以传递参数
                                                                                                                                                                B. 两者都可以被其他程序调用
                                                                                                                                                                C. 两种模块中都可以包含数据库事务语句
                                                                                                                                                                D. 两者创建的系统权限不同
                                                                                                                                                                2. 下列事件,属于DDL事件的是:
                                                                                                                                                                ??? A.? INSERT B.? LOGON
                                                                                                                                                                ??? C.? DROP D.? SERVERERROR
                                                                                                                                                                3. 假定在一个表上同时定义了行级和语句级触发器,在一次触发当中,下列说法正确的是:
                                                                                                                                                                ??? A. 语句级触发器只执行一次
                                                                                                                                                                ??? B. 语句级触发器先于行级触发器执行
                                                                                                                                                                ?????????? C. 行级触发器先于语句级触发器执行
                                                                                                                                                                ??????????????? D. 行级触发器对表的每一行都会执行一次
                                                                                                                                                                4. 有关行级触发器的伪记录,下列说法正确的是:
                                                                                                                                                                ?? A.? INSERT事件触发器中,可以使用:old伪记录。
                                                                                                                                                                ?? B.? DELETE事件触发器中,可以使用:new伪记录。
                                                                                                                                                                ?? C.? UPDATA事件触发器中,只能使用:new伪记录。
                                                                                                                                                                ??????????????? D.? UPDATA事件触发器中,可以使用:old伪记录。
                                                                                                                                                                5. 下列有关替代触发器的描述,正确的是:
                                                                                                                                                                ??? A. 替代触发器创建在表上
                                                                                                                                                                ??????????????? B. 替代触发器创建在数据库上
                                                                                                                                                                ??????????????? C. 通过替代触发器可以向基表插入数据
                                                                                                                                                                ??????????????? D. 通过替代触发器可以向视图插入数据