关于 SQLite
,带或不带 FOREIGN KEY 的 REFERENCES 之间有什么区别?
这有什么区别
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(因此是标签)。我不知道这是否有任何区别,但如果它有自己的怪癖,那将对我了解非常有用。
最佳答案
FOREIGN KEY
语法比在列定义中内联定义更灵活(例如,它允许您定义复合外键,其中两个或多个字段的组合应该存在于引用列)。
在您的情况下,两个 DDL 语句之间没有区别。可以说,外键的内联定义只不过是语法糖。
关于sql - REFERENCES 带或不带 FOREIGN KEY 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21647710/