delete a x where exists (select 1 from b y where x.id=y.id) and x.id is not null;
可以删除数据,这是我测试的语句 create table tb(id int)insert into tb select 1 from dualselect * from tbcreate view tbview as select * from tbselect * from tbviewdelete from tbview
i. 如果某些视图查询执行如下任务一个操作,或者包含如下任何结构,则视图就不能 被UPDATE、INSERT或者DELETE 语句修改: 1) 集合操作,如UNION、UNION ALL、INTERSECT和MINUS. 2) 分组函数,如AVG、COUNT、MAX、MIN和SUM 3) GROUP BY 或者HAVING 语句。 4) CONNECT BY 或者START WITH 语句。 5) DISTINCT 操作符。 6) ROWNUM伪列。 如果要对其进行update 、insert和delete操作就必须使用INSTEAD OF 触发器 在触发器内部直接删除底层数据
where exists
(select 1 from b y where x.id=y.id)
and x.id is not null;
create table tb(id int)insert into tb
select 1 from dualselect * from tbcreate view tbview
as
select * from tbselect * from tbviewdelete from tbview
i. 如果某些视图查询执行如下任务一个操作,或者包含如下任何结构,则视图就不能 被UPDATE、INSERT或者DELETE 语句修改:
1) 集合操作,如UNION、UNION ALL、INTERSECT和MINUS.
2) 分组函数,如AVG、COUNT、MAX、MIN和SUM
3) GROUP BY 或者HAVING 语句。
4) CONNECT BY 或者START WITH 语句。
5) DISTINCT 操作符。
6) ROWNUM伪列。
如果要对其进行update 、insert和delete操作就必须使用INSTEAD OF 触发器 在触发器内部直接删除底层数据