一张表,当删除npid为0的行时,触发器就删除其它行中的 pnid ==npid为0行的nid;create table t_mc_type(
nid number primary key,
sname VARCHAR2(30),
npid number
);create or replace trigger delete_mcType_tirg
before delete on T_MC_TYPE
for each row
when (old.npid=0)
declare
begin delete from T_MC_TYPE t where t.npid = :old.nid;end delete_mcType_tirg;delete from t_mc_type t where t.nid=1;
nid number primary key,
sname VARCHAR2(30),
npid number
);create or replace trigger delete_mcType_tirg
before delete on T_MC_TYPE
for each row
when (old.npid=0)
declare
begin delete from T_MC_TYPE t where t.npid = :old.nid;end delete_mcType_tirg;delete from t_mc_type t where t.nid=1;
解决方案 »
- oracle emp表
- 一个Oracle10G坏了,怎么把数据文件移动到另外一个Oracle10G去?
- not in 的问题
- PL/SQL DEV里面也用commit来提交吗?
- 用存储过程实现
- ORCALE 内在那里看到表?我只 用过sqlserver 请问 我想看某个表内的数据 要如何操作 ?
- 我怎么样才可以在游标里取回当前条的上一条记录?
- 请问我想取出记录集的第30之60条记录,应该怎么写呢?我写成where rownum>30 and rownum<60为什么选不出来纪录呢?
- 新手问路
- SYSTEM表空间底下常用的表
- sqlstr1的查询结果是另外一条查询语句sqlstr2,如何在SQL中来执行sqlstr2
- 今晚一个令我自卑的sql调优问题
create or replace trigger delete_mcType_tirg
before delete on T_MC_TYPE
for each row
PRAGMA AUTONOMOUS_TRANSACTION; --自治的事务when (old.npid=0)
declare
begin delete from T_MC_TYPE t where t.npid = :old.nid;end delete_mcType_tirg;