2011-04-28 111 views
1

我是业务分析的新手。我必须编写显示两个(现在)级联删除(对于两个表)的需求,其余表将显式删除。级联删除用例

我需要一些关于如何编写级联删除要求的指导。

回答

1
  • 删除父母 删除的子实体。
  • 删除集合成员(如果集合实体被删除)。

其实很难理解没有上下文的任务,而且它闻起来像大学/专业家庭作业(我们有一个非常相似)。

1

使用ON DELETE CASCADE选项指定是否希望在父表中删除相应的行时,是否要在子表中删除行。如果您未指定级联删除,则数据库服务器的默认行为会阻止您在其他表引用表时删除表中的数据。

如果您指定此选项,则稍后在删除父表中的某一行时,数据库服务器还会删除与该子表中的该行(外键)关联的所有行。级联删除功能的主要优点是它允许您减少执行删除操作所需的SQL语句的数量。

例如,all_candy表包含candy_num列作为主键。 hard_candy表将candy_num列作为外键引用。以下CREATE TABLE语句创建与外键的级联,删除选项的hard_candy表:

CREATE TABLE all_candy 
    (candy_num SERIAL PRIMARY KEY, 
    candy_maker CHAR(25)); 

CREATE TABLE hard_candy 
    (candy_num INT, 
    candy_flavor CHAR(20), 
    FOREIGN KEY (candy_num) REFERENCES all_candy 
    ON DELETE CASCADE) 

因为DELETE CASCADE被用于相关表,当all_candy表的行被删除指定的,相应的hard_candy表的行也被删除。有关从具有级联删除的表中删除行时的语法限制和锁定含义的信息,请参阅当表具有级联删除时的注意事项。

来源:http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.sqls.doc/sqls292.htm

0

你不写用例的功能 - 这就是为什么它是很难正确地回答你的问题的原因 - 我们不知道是谁用的系统和过程的相互作用演员我们对系统一无所知,所以我们不能告诉你如何编写他们交互的描述。 您应该先编写用例,并从中派生出功能。