本文向您展示如何使用INSTEAD OF TRIGGER
进行更新
- 非版本视图
- 非版本视图的嵌套表列
此INSTEAD OF
触发器提供了一种修改views
的方法,该views
无法直接通过DML语句(如INSERT,UPDATE和DELETE)进行修改
INSTEAD OF触发器是
- 始终是行级触发器。
- 可以读取旧值和新值,但不能更改它们。
- 不能是有条件的。 意味着我们不能添加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