社区
MS-SQL Server
帖子详情
请提供一个oracle触发器示例
gao
2000-08-16 11:20:00
我想利用触发器在删除父表中的某条记录时同时也删除其子表中的相应记录,在sybase或sql server数据库中,是用deleted引用基表,在orable中用deleted和:old都不行,请问该如何解决这个问题?最好能提供一个示例。
...全文
156
5
打赏
收藏
请提供一个oracle触发器示例
我想利用触发器在删除父表中的某条记录时同时也删除其子表中的相应记录,在sybase或sql server数据库中,是用deleted引用基表,在orable中用deleted和:old都不行,请问该如何解决这个问题?最好能提供一个示例。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
blf
2000-10-27
打赏
举报
回复
本身有粒子
土豆
2000-09-28
打赏
举报
回复
有本《PL/SQL程序设计》,是ORACLE出的书的汉化版,专门将如何变存储过程、触发器等的,很不错,建议你去看看。
gao
2000-08-19
打赏
举报
回复
已解决 谢谢,ORACLE 自带着例子
rabbit
2000-08-17
打赏
举报
回复
查看查看有关书
gao
2000-08-16
打赏
举报
回复
问题一解决,
Oracle
中
触发器
示例
详解
前言 在
ORACLE
系统里,
触发器
类似过程和函数,都有声明,执行和异常处理过程的PL/SQL块。
触发器
类型
触发器
在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而
触发器
是由
一个
事件来启动运行。即
触发器
是当某个事件发生时自动地隐式运行。并且,
触发器
不能接收参数。所以运行
触发器
就叫触发或点火(firing)。
ORACLE
事件指的是对数据库的表进行的INSERT、UPDATE及DELETE操作或对视图进行类似的操作。
ORACLE
将
触发器
的功能扩展到了触发
ORACLE
,如数据库的启动与关闭等。所以
触发器
常用来完成由数据库的完整性约束难以完成的复杂业务规
oracle
触发器
使用,很详细
触发器
使用教程和命名规范 1 1,
触发器
简介 1 2,
触发器
示例
2 3,
触发器
语法和功能 3 4,例一:行级
触发器
之一 4 5,例二:行级
触发器
之二 4 6,例三:INSTEAD OF
触发器
6 7,例四:语句级
触发器
之一 8 8,例五:语句级
触发器
之二 9 9,例六:用包封装
触发器
代码 10 10,
触发器
命名规范 11
SqlServer实现类似
Oracle
的before
触发器
示例
本节主要介绍了SqlServer如何实现类似
Oracle
的before
触发器
,需要的朋友可以参考下
oracle
数据库所有
示例
oracle
数据库所有
示例
--有去除功能的 是通过交集做的计算 select sname,sal,sage,sdeptno from student where sdeptno in(20,10) union select sname,sal,sage,sdeptno from student where sdeptno=20 ; --没有去除功能的 (10,20)将全部显示出来 select iname,iage,ideptno from showinfo where ideptno in(10,20)union all select iname,iage,ideptno from showinfo where ideptno=10; --就好比 (20,30)减去30 只剩下20 了一样 结果A减去结果B select sname,sage,sdeptno from student where sdeptno in(20,30)minus select sname,sage,sdeptno from student where sdeptno=30; --编号自增长 insert into student values((select nvl(max(sid),0)+1 from Student),?,?) ----------------------------------------------------------------------------- --以下编号自增长
触发器
实验六-
触发器
实验报告.doc
实验五
触发器
实验报告 [实验目的] 1. 理解
Oracle
触发器
的种类和用途 2. 掌握行级
触发器
的编写 [预备知识] 1. PL/SQL程序设计 [实验原理] 1. 建立
触发器
CREATE [OR REPLACE] TRIGGER <
触发器
名> BEFORE"AFTER INSERT"DELETE"UPDATE OF <列名> ON <表名> [FOR EACH ROW] WHEN (<条件>)
ON 子句中的名称识别与数据库
触发器
关联的数据库表
触发器
事件指定了影响表的 SQL DML 语句 ( INSERT、 DELETE 或 UPDATE) AFTER 指定了
触发器
在处理完成后触发 BEFORE 指定了
触发器
在处理完成前触发 默认情况下,
触发器
每个表触发一次 FOR EACH ROW 选项指定
触发器
每行触发一次(即
触发器
为行级
触发器
) 要使
触发器
触发,WHEN 子句中布尔型表达式的值必须判定为 TRUE 可以将 REPLACE 添加到 CREATE 语句以自动删除和重建
触发器
2. 行级
触发器
中引用表数据 在行级
触发器
中,使用伪记录来表示旧数据:old和新数据:new 引用
示例
::new.customer_name, :old.customer_name 3. 行级
触发器
中的谓词 在
一个
多条件触发的
触发器
中,使用谓词可以区分当前触发的操作的类型:inserting, updating,deleting。
示例
: IF Inserting THEN 语句 ; END IF; IF Updating THEN 语句 ; END IF; IF Deleting THEN 语句 ; END IF; 4.
触发器
的限制 SELECT 语句必须是 SELECT INTO 语句或内部游标声明。 行级
触发器
不可以对触发表进行查询,包括其调用的子过程中。 不允许 DDL 声明和事务控制语句 。 如果由
触发器
调用存储子过程,则存储子程序不能包括事务控制语句 。 :old 和 :new 值的类型不能是 LONG 和 LONG RAW。 [实验内容] 1. 给Customer表增加一列Savings,类型为int,来存放每个顾客的存款总额。 ALTER TABLE customer ADD (saving varchar2(30)); select * from customer; 2. 更新Customer表,使得Savings字段的值正确。 3. 在Account表上增加
一个
行级
触发器
,当对account的balance进行update和insert
一个
记录时同步修改Customer的Savings字段,保证数据的一致性。 4. 对account进行update操作,记录account表和customer表的变化。 5. 去掉顾客- 存款账号表中引用account表的外键约束(如果不去掉,后面的操作无法实现。当然最 佳的方法是修改其外键约束的更新策略,但考虑到复杂性,这里使用不标准的做法, 但建议大家实际运用中不要这么做)。在顾客- 存款账号表插入一条记录,表明顾客开设了
一个
新的账户。 6. 将一条刚才新开账户号的存款记录插入账号表,记录account表和customer表的变化。 [实验总结] 1. 实验中遇到的问题和解决的方法。 ----------------------- "触发事件 ":old ":new " "Insert "无定义,所有字段都是N"该语句完成后插入的值 " " "ULL " " "Update "更新前该行的旧值 "更新后该行的值 " "Delete "删除前该行的值 "无定义,所有字段都是N" " " "ULL "
MS-SQL Server
34,576
社区成员
254,588
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章