iOS功能实现

sqlite3 外键的使用

2017-06-28  本文已影响99人  轻云绿原

1.首先打开外键开关.

因为sqlite3外键默认是关闭的,所以你要使用就要先打开.

PRAGMA foreign_keys = ON

//要在bridge.h里引入 #import <SQLite3.h>
NSString *sql = @"PRAGMA foreign_keys = ON";  
sqlite3_prepare_v2(sqlite, [sql UTF8String], -1, &stmt, NULL);  
sqlite3_step(stmt);  

使用FMDB:

// objective-c
[db executeUpdate:@"PRAGMA foreign_keys=ON;”];
// swift
db.executeStatements("PRAGMA foreign_keys=ON;”)

2.设置foreign key

1.先建一个父表

 "CREATE TABLE IF NOT EXISTS parent (id text PRIMARY KEY NOT NULL);"

2.再建一个子表

"CREATE TABLE IF NOT EXISTS child (id text PRIMARY KEY NOT NULL ,parentID TEXT,FOREIGN KEY (parentID) REFERENCES parent(id) ON DELETE CASCADE ON UPDATE CASCADE);"

child表里的parentID关联到parent表里的id.

ON DELETE 和 ON UPDATE,表示当发生delete和update时,会发生什么行为

3.使用注意

不论update,insert,replace,要涉及到外键的改变的,要确保父表的存在,否则会因为约束的存在,导致操作失败.

上一篇 下一篇

猜你喜欢

热点阅读