SQLite從3.6.19開始支援外鍵限制。看了一下Xcode裡的<SQLite3.h>檔案,顯示版本為3.8.10.2,說明iOS裡的SQLite是支援外鍵限制的。
但是編寫代碼試了一下,發現仍然不支援外鍵限制。在網上查了一下,原來SQLite為了相容以前的程式,預設關閉外鍵限制這一功能。想要啟用外鍵限制,可以在每次打開資料庫的時候執行語句:PRAGMA foreign_keys = ON。(注意每次打開資料庫都是預設關閉該功能的,每次想要啟用外鍵限制都要執行該語句)
執行該語句的方法:
1.打開資料庫。
2.執行以下代碼:
NSString *sql = @"PRAGMA foreign_keys = ON";
sqlite3_prepare_v2(sqlite, [sql UTF8String], -1, &stmt, NULL);
sqlite3_step(stmt);
然後下面就可以執行需要使用外鍵限制的SQL語句了。