Claude需以金融级DBA身份为语雀《订单中心v2.3》撰写MySQL 8.0.33建表规范,字段按【名→类型→NULL→默认→注释→状态】排列,主键用BIGINT UNSIGNED AUTO_INCREMENT,时间用DATETIME(3),敏感字段须注明脱敏方式,索引须绑定具体查询路径并说明执行缺陷,字符集必须精确到utf8mb4_0900_as_cs。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你要让Claude生成的建表SQL能直接过DBA评审、不被退回重写,就不能只说“帮我建个用户表”,必须把字段语义、约束强度、索引意图、版本兼容性全部钉死。
用角色+场景+校验三要素锁定输出质量
第一步:在提示词最开头强制锚定Claude身份与交付场景
你是一位有7年金融级数据库设计经验的DBA,正在为语雀知识库撰写《订单中心v2.3》建表规范文档,所有输出必须满足MySQL 8.0.33生产环境部署要求。
第二步:嵌入平台特有的阅读动线约束
字段定义必须按【字段名→类型→是否NULL→默认值→注释→✅/⚠️/⛔】顺序排列,每行末尾加状态图标;主键必须用BIGINT UNSIGNED AUTO_INCREMENT;时间字段统一用DATETIME(3),禁止使用TIMESTAMP。
第三步:植入熔断式校验条件
若字段含手机号、身份证号、银行卡号等敏感字段,必须自动添加COMMENT说明脱敏方式(如‘前端掩码+后端AES-256加密’);若未声明索引策略,Claude必须报错并停止输出。
方法一:字段级约束必须带数据依据
❌ 错误写法:“user_name VARCHAR(64) NOT NULL COMMENT '用户名'”
✅ 正确写法:【user_name VARCHAR(64) NOT NULL DEFAULT '' COMMENT '用户昵称,长度上限来自iOS端输入框最大限制(实测63字节UTF8mb4)⚠️】
对每个非主键字段,必须标注来源依据:前端控件限制、历史数据最大长度、第三方协议字段定义、或压测暴露的截断风险点。没有依据的DEFAULT值一律禁止出现。
方法二:索引策略必须反向绑定查询路径
方法一:用“WHERE+ORDER BY+GROUP BY”三元组倒推索引
请基于以下高频查询路径生成索引建议:
① WHERE status IN ('paid','shipped') AND created_at > '2026-01-01' ORDER BY updated_at DESC LIMIT 20
② WHERE user_id = ? GROUP BY DATE(created_at)
→ 输出必须包含:索引名(按idx_{table}_{col1}_{col2}命名)、字段顺序、是否覆盖索引、以及未命中该索引时的执行计划缺陷(如Using filesort)
方法二:对唯一性约束强制声明冲突处理方式
若字段声明UNIQUE,请同步写出INSERT ON DUPLICATE KEY UPDATE语句模板,并注明业务含义(如“手机号重复时更新last_login_time,不覆盖注册渠道”)。
方法三:版本兼容性必须显式声明
第一步:明确MySQL大版本与关键参数
当前实例为MySQL 8.0.33,默认optimizer_switch = 'index_merge=on,derived_merge=on,subquery_to_derived=on',禁止使用GENERATED COLUMN和JSON_TABLE函数。
第二步:对分区表、全文索引等特性加熔断开关
若需分区,请指定PARTITION BY RANGE (TO_DAYS(created_at))并给出起始分区边界(如PARTITION p202601 VALUES LESS THAN (TO_DAYS('2026-02-01')));否则Claude必须返回错误提示:“分区策略未提供,跳过生成”。
第三步:字符集与排序规则必须精确到collation
所有VARCHAR字段必须声明CHARSET=utf8mb4 COLLATE=utf8mb4_0900_as_cs,禁止简写为utf8mb4;若字段用于模糊搜索(LIKE '%xxx%'),必须额外标注“⚠️需配合ngram全文索引,当前实例未启用”。


















