开发者和数据分析师在调试或排查线上数据库问题时,经常拿到一个 .db 文件需要快速查询、修改、回滚。桌面工具如 DB Browser for SQLite 能用但要电脑;手机上现成方案要么界面陈旧,要么直接执行 SQL 而没有事务预览,误操作即丢数据。本作品旨在让任何人在手机上用自然语言聊一聊就能管 SQLite 库: 把"删除创建时间早于 2024 年的全部测试用户"这样的口语翻译成 SQL,在事务里先 DRY-RUN 给出影响行的差异,确认无误才 COMMIT。
点击空白处退出提示
开发者和数据分析师在调试或排查线上数据库问题时,经常拿到一个 .db 文件需要快速查询、修改、回滚。桌面工具如 DB Browser for SQLite 能用但要电脑;手机上现成方案要么界面陈旧,要么直接执行 SQL 而没有事务预览,误操作即丢数据。本作品旨在让任何人在手机上用自然语言聊一聊就能管 SQLite 库: 把"删除创建时间早于 2024 年的全部测试用户"这样的口语翻译成 SQL,在事务里先 DRY-RUN 给出影响行的差异,确认无误才 COMMIT。
功能模块: 1) 文件打开: 支持 content:// 与文件路径双通道打开 .db / .sqlite 文件,大文件分页读取; 2) 自然语言转 SQL: 用户在聊天框描述意图,后端 LLM 生成可执行 SQL,附人话解释每一步的影响; 3) 事务预览: 增删改语句在自动开启的事务内先执行,把改动行集合 + 字段级 diff 高亮展示给用户,确认才 COMMIT,否则 ROLLBACK; 4) 行内编辑: 表格视图支持双击单元格直接改值,改完同样进入事务预览; 5) Schema 浏览: 左侧树展示 tables/indexes/views/triggers,点击查看 DDL; 6) 历史回放: 每次操作记录可回看,常用查询可保存为快捷指令; 7) 安全护栏: DROP/TRUNCATE 类语句强制二次确认,防止意外清表。
我独立完成 Android 端 + LLM Prompt 工程 + SQLite 事务预览引擎。技术栈: Kotlin + Jetpack Compose 写聊天与表格双视图、Room SDK 操作 SQLite、Coroutine 控制查询超时、Material 3 主题。核心是事务预览引擎: 每条 LLM 生成的 SQL 都包在 BEGIN..ROLLBACK 内先跑,我用 SELECT 模拟 + ATTACH 临时副本两种策略对照,把 changes() 与 last_insert_rowid() 反推出受影响的行集,做行级、字段级 diff 在 UI 上以红/绿底色显示。难点 1: SQLite 的 RETURNING 子句不是所有版本都支持,我做了能力探测降级到双查询; 难点 2: LLM 偶尔生成多条语句串联,我加了语句解析 + 单条隔离执行,任一失败整体回滚。
下载渠道: Google Play https://play.google.com/store/apps/details?id=com.luming.aisql / APK 直链 https://luuming.github.io/aisql.apk




评论