2014-01-11 159 views
1

我在SQLite中有2個簡單的表。如何從第二個表中刪除第一行中的數據時刪除

1表:notebook_id,NOTEBOOK_NAME

(1, lenovo) 
(2, hp) 

第二個表:MODEL_ID,notebook_id,模型名稱,價格

例如

(1, 1, y580, 1000) 
(2, 1, y510p, 1500) 

當我刪除第一臺聯想我像從第二張桌子刪除聯想的模型。我知道我應該使用觸發器,但如果有人在這個簡單的例子中解釋我的觸發器,將會很棒。

我添加的代碼工作正常,我希望它可以幫助別人。

CREATE TRIGGER trigger_name 
     BEFORE DELETE ON notebook 
BEGIN 
    DELETE 
     FROM model 
    WHERE notebook_id = old.notebook_id; 
END; 

回答

1

這通常稱爲親子關係。
所以第一個表是你的父表,第二個表是你的子表。
您可以設置級聯刪除,以便在父行被刪除時,
也刪除屬於該父行的所有子行。

欲瞭解更多信息,請參閱:

http://www.sqlite.org/foreignkeys.html

,特別是這部分:

「4.3刪除時和更新操作」

見的例子還有與藝術家和曲目,它是
實際上類似於你的情況(如果不相同)。

當然,你也可以處理這個問題在您的應用程序,
和自己刪除父行前即做到這一點,
只要到子表,並刪除所有子行
指向特定的父行。

+0

是的,它工作正常,謝謝 – Empi