我是這個主題的新手。 我想要這樣的東西。如何在sqlite3中創建觸發器?
我有兩個表在我的sqliteDatabase一個是主,另一個是孩子。 現在,如果我從主服務器刪除記錄,假設我從主服務器刪除了一行,其中id = 5,那麼自動刪除id = 5的子表中的所有記錄。 我不知道如何創建觸發器以及如何應用外鍵約束,因此有人請告訴我一種在firefox的sqlite3管理器中執行此操作的方法。 感謝
我是這個主題的新手。 我想要這樣的東西。如何在sqlite3中創建觸發器?
我有兩個表在我的sqliteDatabase一個是主,另一個是孩子。 現在,如果我從主服務器刪除記錄,假設我從主服務器刪除了一行,其中id = 5,那麼自動刪除id = 5的子表中的所有記錄。 我不知道如何創建觸發器以及如何應用外鍵約束,因此有人請告訴我一種在firefox的sqlite3管理器中執行此操作的方法。 感謝
你並不需要一個觸發,你的外鍵會做,如果你定義ON DELETE CASCADE
:
CREATE TABLE child(
id INTEGER,
some_info TEXT,
master_id INTEGER,
FOREIGN KEY(master_id) REFERENCES master(id) ON DELETE CASCADE
);
請參閱documentation about foreign keys。
編輯:
如果你真的需要使用觸發器來做到這一點,看看Foreing Key Triggers。
它不起作用 – 2010-02-20 05:19:37
看看這個鏈接 http://www.sqlite.org/cvstrac/wiki?p=ForeignKeyTriggers – 2010-02-20 05:20:02
你可以爲此創建一個觸發器? – 2010-02-20 05:42:40
如果您有SQLite版本3.6.19或更高版本,您可以在沒有觸發器的情況下執行此操作。有關外鍵信息,請參閱Peter Lang的答案。 – 2010-02-19 14:42:42
是的,3.6.19和更高版本支持外鍵。連接後執行「pragma foreign_keys = on」就不要忘了。 – 2010-02-19 17:35:29
我不知道版本我在哪裏可以看到我的版本我有火狐sqlite經理ver 0.5.11 – 2010-02-20 05:14:13