关于SQLite,带或不带外键的引用之间有什么区别?
SQLite
这有什么区别
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 );
我阅读了文档,但是对我来说并不清楚。
确切地说,我在使用SQLite Android(因此使用了标签)。我不知道这有什么区别,但是如果它有它自己的怪癖,那对我来说非常有用。
Android
该FOREIGN KEY语法比在列定义中内联定义更灵活(例如,它允许您定义一个复合外键,其中引用列中应存在两个或多个字段的组合)。
FOREIGN KEY
在您的情况下,两个DDL语句之间没有区别。可以说外键的内联定义只不过是语法加糖。