2010-07-21 35 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