云鹊BLOG云鹊BLOG云鹊BLOG
  • 首页

云鹊BLOG云鹊BLOG云鹊BLOG

当前位置:首页关于 SQLite 的文章
SQLite deterministic 函数标志:两处参数完全相同,为什么回调仍可能执行两遍

最新SQLite deterministic 函数标志:两处参数完全相同,为什么回调仍可能执行两遍

把昂贵的Python函数注册给SQLite,并加上deterministic=True以后,直觉上可能期待相同参数只计算一次。但这个标志首先是在承诺函数结果具有确定性,不是在申请一个跨表达式、跨行乃至跨查询的缓存。若...

yunqueblogyunqueblog/ 技术教程/ 2026-10-04/ 1 阅读
SQLite INSERT OR IGNORE:非法记录被跳过,为什么外键错误仍会中断

SQLite INSERT OR IGNORE:非法记录被跳过,为什么外键错误仍会中断

把INSERT改成INSERT OR IGNORE以后,重复键、不合格数量和缺失字段似乎都被安静跳过,于是有人把它当成“尽量导入,遇到什么都继续”。一旦出现外键错误,这个预期就会失效,而且同一条多行INSERT里较早...

yunqueblogyunqueblog/ 技术教程/ 2026-10-03/ 4 阅读
SQLite 复合外键:其中一列为空,为什么剩下一列不再检查匹配

SQLite 复合外键:其中一列为空,为什么剩下一列不再检查匹配

一条记录用租户和编号共同指向父表,租户写成不存在的值,编号却为空,插入竟然成功。若只检查PRAGMA foreign_keys已经打开,很容易把它当成SQLite漏验。真正原因是复合外键对NULL有明确规则:任意一个...

yunqueblogyunqueblog/ 技术教程/ 2026-10-03/ 4 阅读
SQLite ON DELETE SET DEFAULT:默认值已经设置,为什么删除父记录仍失败

SQLite ON DELETE SET DEFAULT:默认值已经设置,为什么删除父记录仍失败

把某个负责人删除后,资产自动转入“未分配”类别,是很自然的表设计。于是给子表外键写DEFAULT 0,再添加ON DELETE SET DEFAULT。真正删除时却报外键错误,容易让人怀疑动作没有执行。事实上,设置默...

yunqueblogyunqueblog/ 技术教程/ 2026-10-03/ 4 阅读
Python sqlite3 executemany:生成器中途报错,前两行为什么仍然被提交

Python sqlite3 executemany:生成器中途报错,前两行为什么仍然被提交

导入任务只调用了一次executemany,输入生成器却在第三项之前报错。调用者记录了错误,随后发现前两行已经提交。关键不在于数据库忽略了异常,而在于executemany会逐项消费参数并重复执行语句,输入失败时前面...

yunqueblogyunqueblog/ 技术教程/ 2026-10-03/ 4 阅读
SQLite 接收JSON5配置:json函数能读懂,为什么json_valid仍然返回零

SQLite 接收JSON5配置:json函数能读懂,为什么json_valid仍然返回零

配置为了便于手写,使用单引号、尾随逗号和未加引号的字段名。SQLite的json函数能够转换它,单参数json_valid却报告不合法,表面看像两个函数互相矛盾。实际上,一个入口可以理解扩展语法,另一个检查默认仍坚持...

yunqueblogyunqueblog/ 技术教程/ 2026-10-03/ 2 阅读
SQLite 默认值与NULL:表里写了DEFAULT,为什么显式传空仍然没有补上

SQLite 默认值与NULL:表里写了DEFAULT,为什么显式传空仍然没有补上

表中给state写了默认值new,接口却仍能存进去NULL。很多问题出在应用把“用户没有提交这个字段”统一变成了一个空参数,导致插入语句其实明确给出了NULL。默认值何时生效由SQL语句决定,数据库不会根据字段看起来...

yunqueblogyunqueblog/ 技术教程/ 2026-10-03/ 2 阅读
Python sqlite3 转换器优先级:表声明已经选好类型,查询别名为什么还能换一种结果

Python sqlite3 转换器优先级:表声明已经选好类型,查询别名为什么还能换一种结果

同一张表、同一个值,普通SELECT返回一种对象,加一个带方括号的列别名却换了另一种结果。打开sqlite3的自动类型检测以后,结果的Python类型不只由建表声明决定;查询可以通过列名类型标记选择转换器,而且在两个...

yunqueblogyunqueblog/ 技术教程/ 2026-10-03/ 2 阅读
SQLite json_patch 的数组边界:只想加一个标签,为什么旧列表整个被换掉

SQLite json_patch 的数组边界:只想加一个标签,为什么旧列表整个被换掉

配置页面允许用户修改颜色、补一个标签、清空备注。后端把这一小段JSON交给json_patch,颜色更新正确,原来的两个标签却只剩下新标签,备注字段更是彻底消失。函数名称里的patch容易让人联想到逐项补丁,但它采用...

yunqueblogyunqueblog/ 技术教程/ 2026-10-03/ 2 阅读
SQLite EXCLUDE TIES:排除同分记录时,为什么当前这一行仍然参加求和

SQLite EXCLUDE TIES:排除同分记录时,为什么当前这一行仍然参加求和

做一张按评分展示的汇总表,要求暂时排除与当前记录同分的其他记录,却保留当前记录本身。EXCLUDE TIES可以表达这个关系,但如果把TIES理解为把整组并列项全删掉,就会算出另一份结果。整组排除对应的是EXCLUD...

yunqueblogyunqueblog/ 技术教程/ 2026-10-02/ 2 阅读
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 下一页
  • 末页
  • 共 7 页
点击查看更多
Copyright2020后台修改文字. 基于Z-BlogPHP搭建