从SQLite 3.6.19 开始支持 外键约束。
参考:
http://sqlite.org/foreignkeys.html
Foreign key constraints are disabled by default (for backwards compatibility), so must be enabled separately for each database
connection. (Note, however, that future releases of SQLite might change so that foreign key constraints enabled by default. Careful developers will not make any assumptions about whether or not foreign keys are enabled by default but will instead enable
or disable them as necessary.) The application can also use a PRAGMA foreign_keys statement to
determine if foreign keys are currently enabled. The following command-line session demonstrates this:
sqlite> PRAGMA foreign_keys; 0 sqlite> PRAGMA foreign_keys = ON; sqlite> PRAGMA foreign_keys; 1 sqlite> PRAGMA foreign_keys = OFF; sqlite> PRAGMA foreign_keys; 0 |
Tip: If the command "PRAGMA foreign_keys" returns no data instead of a single row containing "0" or "1", then the version of SQLite you are using does not support foreign keys (either
because it is older than 3.6.19 or because it was compiled with SQLITE_OMIT_FOREIGN_KEY or SQLITE_OMIT_TRIGGERdefined).
It is not possible to enable or disable foreign key constraints in the middle of a multi-statement
transaction (when SQLite is not in autocommit mode). Attempting to do so does not return an error;
it simply has no effect.