iOS SQLite的外键约束
2015-12-18 16:14
218 查看
SQLite从3.6.19开始支持外键约束。看了一下Xcode里的<SQLite3.h>文件,显示版本为3.8.10.2,说明iOS里的SQLite是支持外键约束的。
![](http://img.blog.csdn.net/20151218154857759?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
但是编写代码试了一下,发现仍然不支持外键约束。在网上查了一下,原来SQLite为了兼容以前的程序,默认关闭外键约束这一功能。想要启用外键约束,可以在每次打开数据库的时候执行语句:PRAGMA foreign_keys = ON。(注意每次打开数据库都是默认关闭该功能的,每次想要启用外键约束都要执行该语句)
执行该语句的方法:
1.打开数据库。
2.执行以下代码:
然后下面就可以执行需要使用外键约束的SQL语句了。
但是编写代码试了一下,发现仍然不支持外键约束。在网上查了一下,原来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语句了。
相关文章推荐
- 数据库(2):配置数据的缓存建立方法,建立通用表模型
- 修改SQL Server登录密码(使用SQL Server身份登录)
- 数据库(1):配置数据的缓存建立方法,独立数据表模型
- MySql使用存储过程实现事务的提交或者回滚
- nodejs+mongodb系列教程之(4/5)--mongoose使用
- 【七】MongoDB管理之分片集群介绍
- Android Hawk数据库 github开源项目
- 龙管家计费系统数据库备份
- Oracle PL/SQL 存储过程
- Mysql支持的数据类型(总结)
- oracle 获取最大日期记录
- java对redis的基本操作
- 初用redis缓存
- 程序向oracle插入数据错误:can bind a LONG value only for insert into a LONG column
- SQLite3基本操作入门
- C#利用mysql验证登录
- 数据库insert、update时加入时间戳
- Microsoft SQL Server, Error: 823 一次真实的经历
- oracle行转列函数以及一些窗口函数(PIVOT ,OVER)
- Ubuntu 12.04.1 mysql从5.5升级到5.6