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

云鹊BLOG云鹊BLOG云鹊BLOG

当前位置:首页关于 SQLite 的文章
SQLite WITHOUT ROWID 主键:同样的建表字段,为什么空值规则变了

SQLite WITHOUT ROWID 主键:同样的建表字段,为什么空值规则变了

主键写在纸上,约束还要看表的类型把普通表的建表语句末尾加上 WITHOUT ROWID,字段名称没有变化,旧数据却可能导入失败。最容易忽略的原因是主键中的空值:SQLite 为兼容历史行为,普通、非 STRICT 的...

yunqueblogyunqueblog/ 技术教程/ 2026-10-02/ 2 阅读
SQLite json_set 路径边界:缺少父对象能补上,父位置是 null 为什么却不更新

SQLite json_set 路径边界:缺少父对象能补上,父位置是 null 为什么却不更新

一批配置里有的记录没有 prefs,有的把 prefs 写成 JSON null。给它们统一执行 json_set(doc, '$.prefs.theme', 'dark'),结果前者增加了对象,后者仍然原样返回。函...

yunqueblogyunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
SQLite 加一个月:一月三十一日,为什么会算到三月二日

SQLite 加一个月:一月三十一日,为什么会算到三月二日

给一月三十一日加一个月,原本期待二月底,SQLite 却返回三月二日。这里不能把一个月当成固定天数,也不能假定所有日期库都会自动夹到目标月份末日。月份长度不同会产生无对应日期的情况,需要先约定遇到月底时采用哪条规则。...

yunqueblogyunqueblog/ 技术教程/ 2026-10-02/ 2 阅读
SQLite UPDATE OF 触发器:列名拼错了,为什么创建成功却一直不响

SQLite UPDATE OF 触发器:列名拼错了,为什么创建成功却一直不响

给库存表增加一个数量变化日志,迁移脚本显示 CREATE TRIGGER 成功,更新后却始终没有日志。反复检查提交和连接仍找不到原因,最后发现 UPDATE OF 后面的 quantity 少了一个字母。SQLite...

yunqueblogyunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
SQLite 空值排序:改成降序后,缺失记录为什么换到了另一端

SQLite 空值排序:改成降序后,缺失记录为什么换到了另一端

一个清单按预计耗时从小到大显示,未填写耗时的项目突然出现在最前面。改成降序后,它们又跑到最后。开发者原本只想翻转已有数字的顺序,却同时改变了缺失记录的位置。SQLite 默认在升序时把 NULL 排在前面,降序时放在...

yunqueblogyunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
SQLite LIMIT 两种写法:只是把 OFFSET 换成逗号,为什么取回了另一页

SQLite LIMIT 两种写法:只是把 OFFSET 换成逗号,为什么取回了另一页

维护分页查询时,把 LIMIT ? OFFSET ? 改成 LIMIT ?, ?,占位符数量仍然是两个,程序也没有报错,却把“取三条、跳过两条”变成“跳过三条、只取两条”。SQLite 支持这两种语法,但它们的参数顺...

yunqueblogyunqueblog/ 技术教程/ 2026-10-02/ 2 阅读
SQLite changes 与 total_changes:插入两行,触发器多写的两行算在哪里

SQLite changes 与 total_changes:插入两行,触发器多写的两行算在哪里

一次插入两条主记录,触发器又为每条写一条日志。应用拿 changes 得到二,另一个统计却显示四,看起来像数据库多执行了插入。其实两个计数器的范围不同:一个看最近完成的主语句直接影响多少行,另一个累计这个连接执行过的...

yunqueblogyunqueblog/ 技术教程/ 2026-10-02/ 2 阅读
SQLite ORDER BY 同名别名:原列是数字,排序为什么先出现 10 再出现 2

SQLite ORDER BY 同名别名:原列是数字,排序为什么先出现 10 再出现 2

报表把数值统一显示为两位小数,顺手让格式化结果沿用原列名称 n,再写 ORDER BY n。表里明明存着数字,输出却把 10.00 排在 2.00 前面。应先看排序名称最终指向哪个表达式:在这里,它指向同名的输出别名...

yunqueblogyunqueblog/ 技术教程/ 2026-10-02/ 2 阅读
SQLite HAVING 不写 GROUP BY:三条输入为什么最后只剩一行或零行

SQLite HAVING 不写 GROUP BY:三条输入为什么最后只剩一行或零行

想在待办数量达到门槛时返回一个汇总,查询写了 count 和 HAVING,却没有 GROUP BY。它并不会为每条任务分别做一次门槛判断:这是整体聚合,所有经过筛选的输入共同形成一份统计,条件决定这份统计是否进入结...

yunqueblogyunqueblog/ 技术教程/ 2026-10-02/ 2 阅读
SQLite 延迟外键:COMMIT 已经报错,事务为什么还没有结束

SQLite 延迟外键:COMMIT 已经报错,事务为什么还没有结束

导入关联数据时,子记录先到,父记录稍后才写入。延迟外键允许这类暂时不完整的状态存在于事务内部,但提交时仍必须满足约束。容易漏掉的是恢复动作:COMMIT 因延迟外键失败之后,事务可能仍然开着,已经执行的插入也还在其中...

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