[求助][数据库]表间约束的删除完整性?

03-10-07 zingers
例如有关于树形结构的数据表

nodeid,表示节点唯一性值,primary and unique

parent,表示某节点的父节点引用。

由于nodeid和parent是在同一张表中,不能用主外键约束,

我对数据库不是很熟悉,不知道在同表中的能否表达这种概念:

就是nodeid的所在行row被删除,在数据库层导致任何parent为

该[nodeid]值的行自动被删除,并且递归处理。

具体如能结合mysql/innodb,oracle,sqlserver任何一例描述更好,

thanks

banq
2003-10-10 13:56
我觉得不行,我都是自己手工实现的。

wys1978
2003-10-10 17:32
sql server 2K 支持级联引用完整性约束

CREATE TABLE 和 ALTER TABLE 语句的 REFERENCES 子句支持 ON DELETE 和 ON UPDATE 子句

ON DELETE { CASCADE | NO ACTION }

ON UPDATE { CASCADE | NO ACTION } (默认为 NO ACTION)

当用户试图删除或更新外键所指向的键时,如果选项是CASCADE,那么会自动触发。

以前学习oracle的时候知道也支持cascade delete (但是不知道具体的版本,8i or 9i),你得查找一下文档。

mysql的话,好像没有这个特性。

zingers
2003-10-10 19:28
我今天查询了一下mysql-docment

现在msyql/innodb肯定支持级联操作了。

不过要对这张表先建索引。

sunsong
2003-10-23 16:04
用触发器应该可以达到要求

猜你喜欢