【每日积累】-oracle之触发器001

触发器实现功能: 当向表A中插入一行数据时,同时往表B中插入一条相关数据。

---创建测试样表create table person(pid number(10));create table task(tid number(10));---创建插入触发器:当插入表person时,自动插入task表create or replace trigger person_triggerafter insert on personfor each rowbegininsert into task values (:NEW.pid);end;/----测试触发器insert into person values(1);commit;select * from person p;select * from task t;

---删除测试表和触发器,复原数据库drop Trigger person_trigger;drop table person;drop table task;

----------不在乎事情简单与否,在乎日有所长~~~
时间: 2024-10-10 15:22:35

【每日积累】-oracle之触发器001的相关文章

Oracle数据库——触发器的创建与应用

一.涉及内容 1.理解触发器的概念.作用和类型. 2.练习触发器的创建和使用. 二.具体操作 (实验) 1.利用触发器对在scott.emp表上执行的DML操作进行安全性检查,只有scott用户登录数据库后才能向该表中执行DML操作.(第1题中,user是系统函数,返回当前用户.字符串中使用两个单引号表示一个单引号.) 要求:分别以system用户和scott用户对emp 表执行DML操作,试验触发器的运行效果. (1)在scott用户下创建触发器 语句: create or replace t

Oracle的触发器

过去做项目. 都是前端后台的编码.由于数据库都让项目经理给写好的.自己对于数据库并没有多少优化,时间久了,反而把数据库的知识给淡忘了,近期的项目用到的是Oracle数据库,大家都知道.用到这个数据库.就是数据量比較大的项目了.对于优化就有必要了.因此自己下班后抽出时间复习一下,并把这个记录下来,不仅仅是分享给大家,还能以后自己再次复习.若我讲得不正确,请留言更正,本人会虚心接受并改更,这样才干进步. 1.什么是触发器 每当一个特定的数操作语句(insert,update,delete)在指定的表

ORACLE 11G 触发器调试记录Error: PLS-00201: identifier'SYS.DBMS_SYSTEM' must be declared

1,触发器内容如下 CREATE OR REPLACE TRIGGER"LOGON_DENIED_TO_ALERT" AFTER servererror ON DATABASE DECLARE message   VARCHAR2(168); ip        VARCHAR2(15); v_os_user VARCHAR2(80); v_module  VARCHAR2(50); v_action  VARCHAR2(50); v_pid     VARCHAR2(10); v_s

oracle中触发器的讲解

触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是由一个事件来启动运行.即触发器是当某个事件发生时自动地隐式运行.并且,触发器不能接收参数.所以运行触发器就叫触发或点火(firing).ORACLE事件指的是对数据库的表进行的INSERT.UPDATE及DELETE操作或对视图进行类似的操作.ORACLE将触发器的功能扩展到了触发ORACLE,如数据库的启动与关闭等.所以触发器常用来完成由数据库的完整性约束难以完成的复杂业务规则的约束,

Oracle中触发器(1)

Oracle数据库触发器是存储于数据库的命名PL/SQL语句块,当触发事件发生时他们会隐含的执行,执行触发器的活动被称为触发触发器. 特定用户在特定模式下,或者任何用户执行的ddl语句(如create或者alter),这种触发器经常被用于审计目的,并且专用于oracle DBA.可以记录各种模式修改,何时执行.以及那个用户执行的. 系统事件,如数据库启动或者关闭 用户事件,如登录或者注销.即可以定义一个触发器,在用户登录数据库时记录用户名和登录时间. 触发器相关视图: 创建触发器的通用语法: c

【每日积累】-oracle之connect by 002

1. hierarchical query 语义分析: 2. hierarchical query 脚本测试: ---删除已存在表 drop table test;-- Create tablecreate table TEST(  orgno  NUMBER(10) not null,  deptno NUMBER(10),  deptnm VARCHAR2(20));---insert dateinsert into test values(1,0,'abc');insert into te

oracle 中触发器增加存储过程commit问题

触发器无需commit也不能写commit触发器和触发它的DML是同一个事务DML提交了,触发器的操作也提交了,要不就一起回滚了 当然,如果你一定要在触发器里写COMMIT那就用自治事务相当于一个事务里的子事务 正常情况下,Oracle规定在触发器中不能运行 ddl语句和commit,rollback语句. 解决办法有两种: 1.在可以在触发器中加入:pragma autonomous_transaction; 表示自由事务处理.如: create or replace trigger UPDA

oracle利用触发器实现自增列

oracle没有自增列功能,mysql 和 sqlserver 分别用auto_increment和identity(1,1)来实现自增.oracle要实现只能通过序列实现,每次插入的时候通过取序列的值显示的给自增列,感觉有些不方便,这里使用触发器来代替,从而使插入的时候三者数据库在语法上一致,便于DAO代码的移植.下面是ORACLE实现示例,步骤如下:                                                                        

Oracle使用触发器和mysql中使用触发器的比较——学习笔记

一.触发器 1.触发器在数据库里以独立的对象存储, 2.触发器不需要调用,它由一个事件来触发运行 3.触发器不能接收参数 --触发器的应用 举个例子:校内网.开心网.facebook,当你发一个日志,自动通知好友,其实就是在增加日志的时候做一个出发,再向表中写入条目. --触发器的效率很高 举例:论坛的发帖,每插入一个帖子都希望将版面表中的最后发帖时间,帖子总数字段进行同步更新,这时使用触发器效率会很高. 二.Oracle 使用 PL/SQL 编写触发器 1.--PL/SQL创建触发器的一般语法