oracle级联删除(100分)

  • 主题发起人 主题发起人 johnwung
  • 开始时间 开始时间
J

johnwung

Unregistered / Unconfirmed
GUEST, unregistred user!
请教各位大虾,如何在ORACLE中用触发器实现级联删除?(即删除主表时删除子表相关记录)。
 
Delphi3的主要-明细数据库在这一点上则显的无能为力。只有你自己编程
实现了。
 
re jams
我需要的是在SERVER端用触发器实现该功能!答非所问!
 
主表与子表之间建立了Reference吗?
如有,嘿嘿,好象不行!
想在触发器中实现,先把各种参照完整性关联去捍。
再自己用触发器来维护表表间的完整性关联!
 
Create Trigger Mytriggle
before Delete on Table1
for Each Row
Begin
Delete From Table2
where
xxx_NO=:old.xxx_NO
end;
 
根本不需触发器,只需创建子表时用类似如下的语句:
create table subtable(
...,
bm number not null references MainTable(bm) on delete cascade,
... )
 
hekai的作法完全正确
on delete cascade 是create table 的一个子句,请小心使用
一般来说不赞成如此使用,因为误操作时容易使大量数据丢失
 
请继续讨论或结束问题
如连不上:
http://202.120.85.61/DELPHIBBS/
 
用主/外键就行了
 
绝对正确
CREATE TABLE groups
(
id VARCHAR2(16) CONSTRAINT pk_groupid PRIMARY KEY,
name VARCHAR2(32),
description VARCHAR2(50)
)
TABLESPACE userspace;


CREATE TABLE usringrp
(
group_id VARCHAR2(16) CONSTRAINT fk_uing_grpid
REFERENCES groups(id)
ON DELETE CASCADE,
user_id VARCHAR2(16)
)
TABLESPACE userspace;
 
多人接受答案了。
 
后退
顶部