关于SQLite
,REFERENCES与FOREIGN KEY之间有什么区别?
这个
有什么区别CREATE TABLE players_set (
_id INTEGER PRIMARY KEY AUTOINCREMENT
NOT NULL,
player_id INTEGER REFERENCES players ( _id ) ON DELETE CASCADE,
players_set_id INTEGER REFERENCES players_set_names ( _id )
);
和此:
CREATE TABLE players_set (
_id INTEGER PRIMARY KEY AUTOINCREMENT
NOT NULL,
player_id INTEGER,
players_set_id INTEGER REFERENCES players_set_names ( _id ),
FOREIGN KEY (player_id) REFERENCES players ( _id ) ON DELETE CASCADE
);
我发现了另一个问题: Difference between using REFERENCES with and without FOREIGN KEY?
我读过the documentation,虽然我没有说清楚。
确切地说,我在Android
上使用SQLite(因此标记)。我不知道这是否有所不同,但如果它有自己的怪癖,那么对我来说找出它是非常有用的。
答案 0 :(得分:3)
FOREIGN KEY
语法比在列定义中内联定义更灵活(例如,它允许您定义复合外键,其中两个或多个字段的组合应存在于引用列中)。
在您的情况下,两个DDL语句之间没有区别。可以说外键的内联定义只不过是语法上的含糖。