2013-03-04 54 views
4

我有2個表A(id,Name),B(id,fid,Name)其中A.id = B.fid,我的要求是我想刪除B中的行每當行中的刪除刪除行SQLite觸發表達式

這裏查詢,我試過,但它給了我錯誤附近乙..

Create Trigger Delete_B_trigger After Delete on A For each row Begin Delete from B where fid = id; End 

回答

14

DELETE命令requires一個FROM。

要訪問觸發表中的值,必須使用OLD or NEW別名。

CREATE TRIGGER Delete_B_trigger 
AFTER DELETE ON A 
FOR EACH ROW 
BEGIN 
    DELETE FROM B WHERE fid = OLD.id; 
END 
+1

謝謝...我沒有變老和新的使用和意義aliases.can你提供一些鏈接指它 – Pradeep 2013-03-04 10:00:56

+0

除了鏈接到官方SQLite的文檔,這是已經在那裏? – 2013-03-04 10:28:43

+0

@Pradeep:NEW指的是一行(或多行)的插入或更新版本。 OLD是指該行的預先存在的版本。在刪除操作中,行沒有新版本,只有行(或行)的舊版本。 – Tim 2013-03-04 12:26:53