社区
其他数据库
帖子详情
sqlite如何默认打开外键约束
ymnha
2011-03-04 09:29:38
最近在用sqlite数据库,需要实现外键约束,虽然SQLite在3.6.19版本中开始支持外键约束,但是为了兼容以前的程序,默认并没有启用该功能,如果要启用该功能每次都要需要使用如下语句:PRAGMA foreign_keys = ON来打开。
想请教一下大家有什么办法直接保持每次进数据库外键约束都是默认打开的。谢谢!
...全文
597
6
打赏
收藏
sqlite如何默认打开外键约束
最近在用sqlite数据库,需要实现外键约束,虽然SQLite在3.6.19版本中开始支持外键约束,但是为了兼容以前的程序,默认并没有启用该功能,如果要启用该功能每次都要需要使用如下语句:PRAGMA foreign_keys = ON来打开。 想请教一下大家有什么办法直接保持每次进数据库外键约束都是默认打开的。谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
升级万
2011-10-20
打赏
举报
回复
我研究了好几天源代码也没有搞定,期待高人快快出现啊
ymnha
2011-03-10
打赏
举报
回复
谢谢,楼上的各位的回答。我现在想改源代码,使它能够默认开启。但是看了很久的代码,还是不知道在哪里改。请大家帮忙。谢谢!
iihero_
2011-03-05
打赏
举报
回复
兼容性是很重要的。否则,一些功能性的东西就得修改了。
ACMAIN_CHM
2011-03-04
打赏
举报
回复
是的,目前的SQLITE版本中,foreign key constraints 是默认关闭,必须在每次连接中自己PRAGMA foreign_keys = ON;打开。
ymnha
2011-03-04
打赏
举报
回复
1
难道每次sqlite3_open()后面都得执行一下PRAGMA foreign_keys = ON?很麻烦的
WWWWA
2011-03-04
打赏
举报
回复
似乎没有,要手动PRAGMA foreign_keys = ON
sqlite
3-3.26.0.zip
这是
SQLite
3 V3.26.0 的重新编译版本,加入了
默认
外键约束
,使用时无需手动
打开
即可支持
外键约束
。
修改
SQLite
源码使其
默认
开启外键
最近使用
SQLite
做开发,发现
SQLite
的外键是
默认
关闭的,必须在每次操作数据库的时候
打开
,这给我造成了不小的困扰,据官方文档说,做成这样是因为
SQLite
默认
不支持
外键约束
,加入之后为了避免兼容性问题做了一个开关,并且
默认
是关闭的。但是对于我们来说,完全没有必要考虑兼容性的问题,所以我就想能不能自己编译一个
SQLite
, 使其
默认
开启
外键约束
? 在官方网站上,我找到了 SQL...
SQLite
支持
外键约束
SQLite
外键(Foreign Key)支持是从
SQLite
3.6.19 开始支持
外键约束
. (Ubuntu 10.04 的
SQLite
版本是 3.6.22, Debian 6.0 的
SQLite
版本是 3.7.0)
外键约束
用来强制 两个表之间”存在”的关系. 比
sqlite
外键不生效
问题: 两张表,一张中一个字段为另一张表的外键,但是插入引用表时外键的值在被引用表中不存在时,居然插入成功了。 原因: 在
SQLite
3.x中,每次连接到
SQLite
数据库时都必须进行以下查询: PRAGMA foreign_keys = ON; 否则,
SQLite
将忽略所有
外键约束
。 为什么每次?根据文档,向后兼容
SQLite
2.x 。 在
SQLite
4.x中,
默认
情况下将启用 FK约束。 解决办法:
打开
数据库后,立即执行
打开
外键约束
的语句: //连接数据库 //ret =
sqlite
3_op
sqlite
3数据库外键的问题
sqlite
3数据库的外键
默认
是关闭的,使用的时候需要用以下的语句启用: PRAGMA foreign_keys = ON; 但是,问题在于,以后执行删除语句、插入语句或者更新,在需要外键限制的地方,都需要再次
打开
外键。 我在执行删除语句之前,再次执行了上面的语句,但是没有生效。不知道是不是因为qt 的QSqlQuery 的query.ecec()一次只能执行一条语句。 网上搜了一下,有两个方案: 修改并重新编译
sqlite
3源码,使其
默认
开启,然后在qt中不适用...
其他数据库
2,209
社区成员
9,519
社区内容
发帖
与我相关
我的任务
其他数据库
其他数据库开发 其他数据库
复制链接
扫一扫
分享
社区描述
其他数据库开发 其他数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章