数据库变更脚本预检

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

在执行前审查 SQL 变更脚本:识别无 WHERE 的更新删除、锁表风险、隐式类型转换、缺失回滚方案、大表 DDL 风险与命名规范问题,输出可执行的风险清单与改写建议。当用户说「看下这个 SQL 能不能上」「变更脚本预检」「上线前检查 SQL」时使用。 也适用于「SQL预检」「变更脚本检查」「上线前检查SQL」「数据库变更」「sql review」这类说法。

一句话选型结论

按资料字段整理

数据库变更脚本预检是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_01de61f3/ym-sql-change-precheck
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_01de61f3仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791621730
正文体量7.5 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
数据库变更脚本预检当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

7.5 KB
模型实际读到的说明书原文,来自技能仓库

数据库变更脚本预检 (ym-sql-change-precheck)

上线前把 SQL 变更脚本里会出事的地方翻出来——不是执行完再救火。核心是静态风险扫描:只读脚本、给风险等级与可执行的改写建议,绝不执行 SQL、绝不连库。

何时使用

  • 用户说「看下这个 SQL 能不能上」「变更脚本预检」「上线前检查 SQL」「这段 DDL 有风险吗」时
  • 用户贴出一段 DDL/DML 变更脚本,准备上线前想做评审时
  • 团队做上线变更评审,需要一份风险清单与回滚方案时

运行前提

  • 依赖:无第三方库,纯静态文本分析
  • 不连接数据库、不执行任何 SQL
  • 不读取本地文件,除非用户给出路径
  • 不联网、不上传脚本内容

输入契约

项 必需 说明
SQL 变更脚本 必需 DDL/DML 均可,可含多条语句
数据库类型与版本 可选 MySQL/PostgreSQL/Oracle/SQL Server;缺省按通用 SQL 审查
表量级 可选 用于判断大表风险;缺省按"若超百万行"条件化提示
是否允许锁表 可选 默认不允许,锁表相关标高危
是否有回滚要求 可选 默认要求回滚方案

缺失处理:

  • 缺库类型 → 按通用 SQL 审查,对有方言差异的点同时给几种写法并标注"需确认具体库"
  • 缺表量级 → 大表风险项按"若超过百万行"条件化提示,不假设量级
  • 无脚本只有自然语言描述 → 请用户提供实际 SQL,不凭描述臆测风险

执行步骤

  1. 逐条编号与分类 — 给每条语句编号(S1、S2…),识别类型:CREATE / ALTER / DROP / TRUNCATE / UPDATE / DELETE / INSERT / 数据迁移。类型决定后续扫描重点。

  2. 按风险清单扫描 — 对照 references/风险规则清单.md 的 7 类规则逐项过:破坏性、锁与可用性、数据一致性、隐式类型转换、兼容性、可回滚、命名规范。每条命中记录:编号、位置、类型、等级、后果。

  3. 给风险等级与改写 — 每条风险标 高/中/低,写清后果,并给可执行的 SQL 改写片段(如 UPDATE ... SET ... WHERE id = ?)。需人工确认的标"需人工确认"。

  4. 排执行顺序建议 — 哪些必须先跑(如先建索引再写数据)、哪些要分批次(大表 DDL 单独批次)、哪些需先备份。给出顺序与批次划分。

  5. 出回滚方案骨架 — 若用户未提供,按 templates/回滚方案模板.md 给每类操作的回滚(DROP 的列先备份、UPDATE 前记录旧值等)。不可逆操作(DROP、数据清理)明确标注"无安全回滚,需备份兜底"。

  6. 自检 — 逐条核对:高危项是否都给了改写建议?不可逆操作是否都提示了备份/无回滚?有没有出现"已执行""连库检查"这类越界动作(不应出现)?

输出格式

Markdown,套用 templates/风险报告模板.md:

## 一、脚本概览
- 语句数:[N],类型分布:[ALTER x2, UPDATE x1, DROP x1]
- 库类型:[MySQL 8.0 / 未指定按通用]

## 二、风险清单
| 编号 | 位置 | 类型 | 等级 | 后果 | 建议 |
|------|------|------|------|------|------|
| S2 | UPDATE user | 破坏性 | 高 | 全表 status 被置 1 | 加 WHERE 条件 |

## 三、高危项展开
- [S2] 原语句:…… 改写:…… 为什么:……

## 四、执行顺序建议
1. [先跑什么] 2. [再跑什么,分批说明]

## 五、回滚方案
[逐类操作回滚 SQL / 备份兜底说明]

## 六、需人工确认项
- [方言差异 / 表量级未知 / 是否允许锁表]

能力边界

  • 不执行任何 SQL,不连接数据库,不分析真实执行计划
  • 不保证覆盖所有数据库方言细节;方言差异点标注"需确认"
  • 不代替 DBA 审批;最终上线决策由人做
  • 不假设表结构;结构信息必须由用户提供或从脚本推断并标注"推断"
  • 默认不跨次存储

常见坑

  1. UPDATE/DELETE 没 WHERE 还放行 — 现象:模型看漏了缺 WHERE 的更新,写成"低风险"。原因:没逐条扫破坏性规则。规避:每条 UPDATE/DELETE 强制检查 WHERE 是否存在且非恒真(WHERE 1=1 等同无 WHERE)。
  2. 大表加索引没提示在线 DDL — 现象:直接说"加索引没问题"。原因:忽略锁与可用性维度。规避:大表(或"若超百万行")的加索引必须提示用在线 DDL(如 MySQL ALGORITHM=INPLACE, LOCK=NONE)或低峰分批。
  3. 新增 NOT NULL 列无默认值当小事 — 现象:表非空时加 NOT NULL 无默认值会直接报错或锁表,被轻描淡写。原因:没过数据一致性维度。规避:非空表加 NOT NULL 必须给"先加可空列 + 默认值回填 + 再改 NOT NULL"方案。
  4. 隐式类型转换导致索引失效被忽略 — 现象:WHERE 里 varchar 字段传了数字,模型没提示。原因:只看了语法没看类型匹配。规避:WHERE 条件字段类型与传入值类型不匹配时,提示会触发隐式转换、索引失效、全表扫。
  5. DROP/TRUNCATE 没标无回滚 — 现象:给了回滚 SQL 但 DROP 列其实无法无损回滚。原因:回滚方案模板套错。规避:DROP/TRUNCATE/数据清理标"不可逆,需先全量备份兜底",不给虚假回滚。
  6. 方言混用当成通用 — 现象:把 MySQL 的 LIMIT 或 Oracle 的 ROWNUM 当通用语法。原因:缺库类型时默认通用却没标差异。规避:缺库类型时每种方言差异点并列给出并标"需确认具体库"。
  7. 结构靠猜 — 现象:脚本用到的表/字段模型凭空假设存在。原因:违反"不假设表结构"约束。规避:结构信息只能来自用户提供或脚本内推断,并明确标注"推断,待你确认"。

验收用例

  • 正常:UPDATE user SET status=1 无 WHERE → 判高危,给带 WHERE 的改写
  • 边界 1:新增 NOT NULL 列无默认值且表非空 → 判高危,给"加默认值再回填"方案
  • 边界 2:仅 CREATE TABLE 无风险 → 明确输出"未发现高危项",不硬凑风险
  • 失败:只有自然语言描述无 SQL → 请用户提供实际脚本

目录说明

  • references/ — 风险规则清单(7 类,含判定特征/后果/改写建议)
  • templates/ — 风险报告模板、回滚方案模板

常见问题

5 问
答案由本站依据条目字段整理
数据库变更脚本预检怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_01de61f3/ym-sql-change-precheck。安装方式为未标注。装完刷新技能列表或重开客户端。

数据库变更脚本预检支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

数据库变更脚本预检权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

数据库变更脚本预检收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

数据库变更脚本预检用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。