数据库连接
共 184 篇文章
pg_upgrade 报 could not load library:检查扩展缺包和 adminpack 移除
pg_upgrade 的共享库检查失败时,区分目标版本缺少扩展包与 adminpack 已被移除,核对旧库调用和删除影响,再重新检查升级条件。
PostgreSQL 并发唯一索引显示 INVALID,却仍拒绝重复写入
并发唯一索引构建失败后,INVALID索引仍可能检查写入唯一性。先定位错误对象与构建阶段,保留完整性保护,再安排针对索引的并发重建。
CF.INFO 报错后 Mono 一直不结束
Lettuce 7.7 的 Reactive 复杂结果命令可能在服务端错误后等到 timeout。7.8.0 调整了错误检查顺序,恢复 onError;仍需处理原来的 Redis 错误。
Lettuce 缺少 jdk.net
jlink 镜像缺少 jdk.net 时,Lettuce 7.5.2 的 NIO 保活探测可能让应用启动失败。采用含修复的兼容客户端,或在原模块列表中补齐 jdk.net。
Celery 长 countdown 后报 consumer ack timed out
长countdown等待可能超过RabbitMQ确认期限。核对版本与队列类型,区别毫秒和秒,并检查channel关闭后的重新入队。
pgJDBC 强转失败
pgJDBC 42.7.13 的多语句 PreparedStatement batch 可能报 CompositeQuery 强转失败,42.7.14 仍保留相关路径。拆分语句时保留执行顺序、事务与返回值约定。
SQL Server LEN 不计尾部空格,DATALENGTH 又返回字节数
区分 LEN 的字符计数与 DATALENGTH 的字节数;需要保留尾部空格计数时,使用查询内标记并避免有限长度拼接截断。
Npgsql 列是 timestamp without time zone,却报只接受 UTC:检查参数类型
Npgsql 写入 DateTime 报 timestamp 类型不匹配时,先检查参数推断、目标列类型和 DateTime.Kind,再决定是否转换为 UTC。
Go 事务开始后 Prepare 卡住:连接池只剩事务占用的连接
Go 事务占用唯一连接后,通过 DB.Prepare 再取连接会一直等待。使用事务上的 PrepareContext,并核对懒缓存、取消和提交结果。
PostgreSQL 过程里 DETACH PARTITION CONCURRENTLY 报事务块错误
过程内COMMIT不能让DETACH PARTITION CONCURRENTLY成为客户端顶层语句。核对调用位置、事务边界、默认分区和中断分离状态。
SQLite INSERT SELECT 的 ON CONFLICT 报 near do:给 SELECT 保留 WHERE
SQLite INSERT SELECT 接 ON CONFLICT 报 near do 时,检查 ON 的解析歧义,在 SELECT 中保留 WHERE,并核对实际运行库和冲突语义。
PostgreSQL 设置 ON DELETE SET NULL 后仍无法 TRUNCATE 父表
PostgreSQL 的 TRUNCATE 不执行外键 ON DELETE SET NULL。需要保留子表时使用 DELETE,并核对可空列、其他外键、清理范围及事务回退边界。
PostgreSQL 外键加了 NOT VALID,删除父行仍会级联删子行
NOT VALID外键仍会执行ON DELETE CASCADE;旧孤儿可暂留,新引用继续检查。先读约束定义,确认删除规则和历史数据处理。
用了 --no-owner,pg_restore 仍报 role does not exist
恢复数据库时缺少旧角色:区分OWNER与GRANT/REVOKE,核对no-owner和no-acl范围,选择角色迁移或重新分配目标权限。
Lettuce 返回已删除 ID
Redis 7 的 XAUTOCLAIM 删除 ID 数组曾被旧版 Lettuce JUSTID 解析为已领取消息。Lettuce 7.8.0 修复后,用 getMessages 与 getDeletedIds 分开处理。
PostgreSQL CHECK 用函数统计项目数量,验证通过后仍能超额
CHECK调用函数读取其他行,验证通过后仍可超出项目额度。区分行内检查和跨行规则,核对函数、并发入口及事务设计。
BullMQ 任务一直 waiting:Queue 与 Worker 的 prefix 不一致
Queue和Worker前缀不一致会访问不同命名空间。对照endpoint、db、队列名称和prefix,处理旧任务归属,不盲目重命名Redis键。
SQLite 已设置 foreign_keys,删除父记录仍未触发级联删除
事务内的 PRAGMA foreign_keys 设置不会生效。核对实际写入连接的开关和外键定义,将初始化移到事务开始前,并单独检查历史孤儿记录。


