Oracle PL / SQL – INSTEAD OF触发器示例

本文向您展示如何使用INSTEAD OF TRIGGER进行更新

  1. 非版本视图
  2. 非版本视图的嵌套表列

INSTEAD OF触发器提供了一种修改views的方法,该views无法直接通过DML语句(如INSERT,UPDATE和DELETE)进行修改

INSTEAD OF触发器是

  1. 始终是行级触发器。
  2. 可以读取旧值和新值,但不能更改它们。
  3. 不能是有条件的。 意味着我们不能添加WHEN或IF条件。

1.将数据插入视图

在此示例中,我们创建了一个INSTEAD OF触发器,当我们在视图上执行insert语句时,它将在view各个表中插入行。

1.1创建表。

customer_details
CREATE TABLE customer_details
(
	customer_id number(10) primary key,
	customer_name varchar2(20),
	country varchar2(20)
);
projects_details
CREATE TABLE projects_details
(
	project_id number(10) primary key,
	project_name varchar2(30),
	project_start_Date date,
	customer_id number(10) references customer_details(customer_id)
);

1.2创建customer_projects_view视图以获取客户及其项目的结果。

customer_projects_view
CREATE OR REPLACE VIEW customer_projects_view AS
   SELECT cust.customer_id, cust.customer_name, cust.country,
          projectdtls.project_id, projectdtls.project_name, 
		  projectdtls.project_start_Date
   FROM customer_details cust, projects_details projectdtls
   WHERE cust.customer_id = proje
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值