2011-04-28 68 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

你不寫用例的功能 - 這就是爲什麼它是很難正確地回答你的問題的原因 - 我們不知道是誰用的系統和過程的相互作用演員我們對系統一無所知,所以我們不能告訴你如何編寫他們交互的描述。 您應該先編寫用例,並從中派生出功能。