北大青鸟oracle学习笔记26 27 28
数据库触发器
触发器语句
制定触发器定时、事件、表名及类型
触发器主体
是pl/sql快或对过程的调用
触发器限制
可以通过when子句实现
DML(insert update delete)
DDL(create alter drop)
数据库操作(servererror logon logoff startup shutdown)
create trigger 触发器名
before|after insert|delete|update of 列名
on 表名
[for each row] --行级触发器
when 条件
触发器谓词
inserting insert操作
updating update操作
deleting delete操作
可以根据这三个谓词判断到底在执行哪个操作
create or replace
Trigger tg_insert
before insert or update on student
for each row
begin
if updating then
dbms_output.put_line('before update');
end if;
if inserting then
dbms_output.put_line('before insert');
end if;
end;
触发器类型:
1、 表级触发器(表级触发器对每个DML语句执行一次)
create or replace Trigger tg_insert
before update on student
begin
dbms_output.put_line('before update);
end;
4 rows updated
before update
2、 行触发器 (行级触发器对DML语句影响的每个行执行一次)
create or replace
Trigger tg_insert
before update on student
for each row --每行触发一次
begin
dbms_output.put_line('before update');
end;
4 rows updated
before update
before update
before update
before update
使用触发器时,两个特殊值:new 新插入的值 :old 原来的值 不能用于表级触发器
create or replace trigger trig_job
before insert or update of job
on emp
for each row
begin
if inserting then
:new.job:=upper(:new.job);
else
:new.job:=upper(:new.job);
end if;
end;
3、INSTEAD OF触发(此触发器是在视图上而不是在表上定义的触发器,它是用来替
相关文档:
1.sqlplus-----开启服务
2.输入用户名和密码(默认3个用户,注意,密码是可以修改的:system/manager;scott/tiger;sys/change_on_install),连接数库。
3.创建表空间:
create tablespace 表空间逻辑名 datafile '表空间文件的物理逻辑'
size 文件大小(如:10m) autoextend 是否自动增长文件大小(on/off ......
刚开始学习Orace,遇到一些非常好的书,在下面列出,随着学习的深入会把遇到的好书都列出来,供学习Oracle的朋友参考,
也欢迎各位朋友补充:
基础:
1. ORACLE DBA基础培训教程 何明著 清华大学出版社
&n ......
子程序 命名的pl/sql块
create procedure 过程名 [参数1 in|out|in out…]
局部变量声明
执行语句
in
out
in out
过程名(参数里表); create or replace
procedure add123 as
i integer;
j integer;
begin
i:=1;
j:=2;
dbms_output.put_l ......
原链接:http://www.oracle.com/webapps/dialogue/dlgpage.jsp?p_ext=Y&p_dlg_id=7731619&src=6817982&Act=4&sckw=APACMK09050910MPP005.GCM.8074.110
能否在第一时间
获得新战略的反馈意见?
能否通过管理模型
来预测业务数据?
......
【实现步骤】
1. 创建表blog_info, 具有ID和title两个字段, 其中ID将设置为自动增长列;
2. 创建序列:
create sequence sq_blog_info
start with 1
increment by 1
nomaxvalue
nocycle
......