起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1754|回复: 7

[结贴] 主从表级联删除

  [复制链接]

188

主题

598

帖子

1210

积分

金牌会员

Rank: 6Rank: 6

积分
1210
QQ
发表于 2014-4-17 17:15:19 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
有两个表,现在只在从表data上master做了关联。现在直接删除主表后从表无法删除,还需要修改哪里,求方法,谢谢。

89

主题

374

帖子

811

积分

高级会员

Rank: 4

积分
811
QQ
发表于 2014-4-17 17:17:56 | 显示全部楼层
已经存储到DB里面的数据,如果删除了主表的数据,还需要自己写代码去删除从表的数据。
根据在从表的data-master上设置的字段,把从表中对应的数据删除。
回复 支持 反对

使用道具 举报

发表于 2014-4-17 17:24:16 | 显示全部楼层
如果你设置了互逆关系的话 删除主表数据后可以自动删除从表数据;
建议还是手动调下删除动作
回复 支持 反对

使用道具 举报

发表于 2014-4-17 17:48:24 | 显示全部楼层
http://bbs.justep.com/forum.php?mod=viewthread&tid=39339参考这个帖子就行,写的很清楚

评分

参与人数 1 +5 收起 理由
jishuang + 5 赞一个!

查看全部评分

回复 支持 反对

使用道具 举报

45

主题

4492

帖子

3960

积分

论坛元老

Rank: 8Rank: 8

积分
3960
QQ
发表于 2014-4-17 21:20:25 | 显示全部楼层
主从表数据的删除,本人还是比较喜欢用ACTION 来删除数据。无论是一个主表一个从表,还是多个从表的情况,想怎么删除就怎么删除。
当然你也可以按 4# 里面的链接的方法来设置下进行级联删除,但感觉不是很灵活。还是向往 自定义ACTION 删除数据方式。

在主表的 BIZDATA 的数据删除前或者删除后进行执行 ACTION ,对其子表中的数据进行删除,非常方便。
向前进,向前进,我们……
回复 支持 反对

使用道具 举报

发表于 2014-4-17 22:07:23 | 显示全部楼层
楼主为什么不使用触发器删除呢,删除主表的同时触发删除子表的数据,加快执行速度
回复 支持 反对

使用道具 举报

188

主题

598

帖子

1210

积分

金牌会员

Rank: 6Rank: 6

积分
1210
QQ
 楼主| 发表于 2014-4-18 07:43:48 | 显示全部楼层
lanware_smf 发表于 2014-4-17 22:07
楼主为什么不使用触发器删除呢,删除主表的同时触发删除子表的数据,加快执行速度 ...

不会写oracle触发器,求步骤求方法,谢谢。
回复 支持 反对

使用道具 举报

17

主题

355

帖子

772

积分

高级会员

Rank: 4

积分
772
QQ
发表于 2014-4-18 08:18:28 | 显示全部楼层
可以不用oracle的触发器,简单的通过on delete cascade限制实现.
CREATE TABLE table1 (ID INT PRIMARY KEY,b INT);
CREATE TABLE table2 (ID INT PRIMARY KEY,parid INT REFERENCES table1(ID) ON DELETE CASCADE);

INSERT INTO table1 VALUES(1,1);
INSERT INTO table1 VALUES(2,2);
INSERT INTO table1 VALUES(3,3);
INSERT INTO table2 VALUES(1,1);
INSERT INTO table2 VALUES(2,2);
INSERT INTO table2 VALUES(3,3);

COMMIT;
SELECT * FROM table1;
SELECT * FROM table2;
DELETE FROM table1 WHERE ID=1;


一步一步走向那迦南地......
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-6-2 07:06 , Processed in 0.070718 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表