必须让ai明确识别表结构、索引与约束的依赖关系,否则漏检冗余索引等问题;需仅提取ddl语句,用三层交叉验证(结构化指令、反例推理、约束绑定)和字段级锚点(来源声明、最左前缀验证、冲突报错)确保评审精准。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在Cursor中编写数据库评审提示词时,必须让AI明确识别表结构、索引定义与约束逻辑之间的依赖关系,否则生成的评审意见会漏检冗余索引、缺失外键索引或约束冲突等问题。
先锁定评审范围:只看DDL语句本身
把建表语句(CREATE TABLE)、索引语句(CREATE INDEX)、约束语句(ADD CONSTRAINT)三类SQL单独提取出来,【不要混入INSERT/UPDATE/存储过程等运行时逻辑】。Cursor对上下文长度敏感,混入无关SQL会导致关键DDL被截断或忽略。
复制全部DDL后,在Cursor对话框里粘贴前加一句:“请严格基于以下DDL进行数据库设计评审,仅分析索引与约束的关系。”
提示词必须强制AI做三层交叉验证
方法一:用结构化指令框定分析维度
“请逐表检查:① 主键字段是否已自动创建唯一聚簇索引;② 所有外键列是否单独或组合建立了非唯一索引;③ 每个WHERE/JOIN/ORDER BY高频字段是否被现有索引覆盖——若未覆盖,指出缺失索引的列组合及类型(B-tree / hash)。”
方法二:用反例触发深度推理
“如果某表有外键order_id但未建索引,且该字段常用于DELETE WHERE order_id = ?,请说明这将导致全表锁还是仅行锁,并对比加索引前后的执行计划差异。”
方法三:绑定约束类型到索引必要性
Agents 正在你的整个代码库中处理越来越复杂、运行时间更长的任务。本次版本引入了新的 agent 框架改进,以实现更好的上下文管理,并在编辑器和 CLI 中带来了许多提升使用体验的修复。
“唯一约束(UNIQUE)必须对应唯一索引,主键约束(PRIMARY KEY)必须对应唯一且非空索引,CHECK约束不产生索引但可能影响索引选择性——请标出所有违反该规则的DDL片段。”
规避常见幻觉:用字段级锚点约束AI输出
第一步:在提示词开头声明字段来源
“所有分析必须基于以下字段定义:user_id INT NOT NULL, status TINYINT DEFAULT 0, created_at DATETIME”
第二步:要求AI反向验证索引列顺序
“对于索引 idx_user_status_created (user_id, status, created_at),请验证:WHERE user_id = ? AND status = ? 能用上该索引;但 WHERE status = ? AND created_at > '2024-01-01' 不能——解释最左前缀原则在此处如何生效。”
第三步:强制标注约束冲突点
“若存在 FOREIGN KEY (region_id) REFERENCES regions(id) 但 regions.id 无主键或唯一约束,请直接报错并停止后续分析。”










