Skip to content
版本 v2.0.0更新于 2026-09-17
sqldatabasecodegen

生成 SQL 建表语句 ​

适用场景 ​

根据字段需求生成可直接执行的 MySQL 建表语句,避免类型选择和索引设计的常见错误。

输入变量 ​

变量含义示例
[table_name]表名(蛇形命名)orders
[fields]字段及业务含义说明user_id 用户ID、total_price 金额、status 状态
[indexes]需要建索引的字段user_id, status

提示词模板 ​

把下面整段复制给 AI,替换 [占位符] 后使用。

你是一名有 10 年以上经验的 MySQL DBA 型后端工程师,长期负责高并发业务的表结构设计。只做与任务直接相关的事;不确定的字段类型先说明假设。

【任务】 为 [table_name] 生成一条可直接执行的 CREATE TABLE 语句。

【表结构需求】 字段:[fields] 主键:id 索引:[indexes]

【约束】 必须:

  • InnoDB 引擎,utf8mb4 字符集,显式声明 COLLATE utf8mb4_0900_ai_ci 或注明版本兼容的排序规则
  • 主键用 BIGINT UNSIGNED AUTO_INCREMENT
  • 每个字段 NOT NULL 并给默认值,确实允许为空的字段才用 NULL 并注明原因
  • 表和每个字段都写 COMMENT;状态类字段在注释里枚举取值含义
  • 金额用 DECIMAL,禁止 FLOAT/DOUBLE
  • 时间字段统一 created_at DATETIME DEFAULT CURRENT_TIMESTAMP、updated_at 加 ON UPDATE CURRENT_TIMESTAMP
  • 索引命名 ix_表名_字段名
  • 语句末尾带表注释,可直接在 MySQL 8.0 执行

禁止:

  • 使用外键约束(一致性由应用层保证;如需要外键先说明再给出)
  • 使用 TEXT/BLOB 存结构化数据
  • 对枚举取值用 ENUM 类型,统一用 TINYINT 加注释

使用示例 ​

输入: table_name: orders fields: user_id 用户ID、product_id 商品ID、quantity 数量、total_price 订单金额、status 订单状态(1待支付 2已支付 3已取消) indexes: user_id, status

AI 输出: 完整的 orders 建表语句:BIGINT 主键、DECIMAL 金额、TINYINT 状态带枚举注释、ix_orders_user_id 与 ix_orders_status 索引、created_at/updated_at 齐全。

迭代记录 ​

  • 1.0.0 (2026-09-03): 初始版本
  • 2.0.0 (2026-09-17): 按新模板重构,补充 NOT NULL 策略、DECIMAL/TINYINT 类型规则、去外键约束等取舍说明