2010-07-21 33 views
1

如何在SQLite中實現外鍵?我想是這樣的:在SQLite中實現/使用外鍵?

CREATE TABLE job (_id INTEGER PRIMARY KEY AUTOINCREMENT, employer_id INTEGER, ...); 
CREATE TABLE employer(_id INTEGER, employer_name TEXT NOT NULL, ...); 

哪裏employer_id從表中可以employer_id。這會工作嗎?有沒有另一種快速,也許不太容易出錯的方式?也許觸發器?

+2

我不是sqlite大師,但你使用的是不強制執行密鑰的版本(儘管它支持創建語法)?在這種情況下,請看http://justatheory.com/computers/databases/sqlite/foreign_key_triggers.html – Tobiasopdenbrouw 2010-07-21 08:24:55

回答

2

也許我不明白的問題,但如果這是你想要的約束,只是這樣做:

ALTER TABLE Job 
    ADD FOREIGN KEY (employer_id) 
    REFERENCES Employer(_id) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION; 
+0

這是合法的SQLite代碼嗎?我認爲SQLite不支持外鍵約束? – 2010-07-21 08:25:26

+0

@Mohit Deshpande:至少SQLite3,我不知道早期版本。 – 2010-07-21 08:28:45

+0

@Mohit:我也很驚訝,但SQLite有外鍵支持,請參閱http://www.sqlite.org/foreignkeys.html – Lars 2010-07-21 08:29:08