SQL建表语句生成器

本地处理
  • 打赏支持
  • 分享链接
  • 反馈建议
逐行填字段,点「添加字段」继续加。主键与自增一般配合使用:主键列选 bigint 并勾源自增。生成语句默认带 utf8mb4 字符集与 InnoDB 引擎,避免中文与表情符号乱码。
字段名类型长度 主键自增非空 默认值注释操作

工具说明

手写建表语句最容易漏掉三件事:字符集、注释、索引。漏字符集导致中文存进去变问号,漏注释导致半年后没人知道这个字段是干什么的,漏索引导致上线后查询慢。本工具把这些都放进生成模板里。

字段类型怎么选

  • 主键:建议用 bigint 并开启自增。int 在数据量大的表上会提前耗尽,而 uuid 做主键会影响插入性能与索引体积。
  • 金额:用 decimal 指定精度,不要用 float 或 double——浮点数在金额计算上会出现精度误差。
  • 短文本:用 varchar 并给合理长度。长度既影响索引大小也影响内存占用,不要一律写 255。
  • 长文本:用 text 或 longtext。注意 text 类型不能直接建普通索引,需要指定前缀长度。
  • 时间:用 datetime 或 timestamp 并开启默认当前时间。两者区别是 timestamp 有 2038 年上限且受时区影响。

三条建表规范

  1. 字符集统一 utf8mb4:utf8 在 MySQL 里其实只有三个字节,存不了 emoji 与部分生僻字。新表一律用 utf8mb4。
  2. 每张表都要有主键:没有主键的表在主从复制与在线变更时会有额外麻烦,即使业务上不需要唯一标识也应该加一个自增列。
  3. 注释写到字段上:字段注释是团队协作里性价比最高的文档,因为写代码时鼠标一悬停就能看到。

关于 DROP TABLE

默认不生成删除语句,避免误执行导致数据丢失。只有在初始化脚本、测试环境重建这类明确场景下才打开。生产环境执行任何 DDL 之前,请先确认已备份。

你可能还想问

为什么中文存进去变成问号?

因为字符集不是 utf8mb4。MySQL 里的 utf8 最多只有三个字节,中文常用字能存但 emoji 与部分生僻字存不了,会变成问号或被截断。解决方案是把库、表、连接三处的字符集统一成 utf8mb4,其中连接字符集最容易被漏掉——它是客户端与服务端协商时决定的,只在建表时设置好还不够。

主键用 int 还是 bigint?

建议 bigint。int 无符号的上限大约 42 亿,看似很多,但如果表里用自增主键并且有删除重建,或者业务量增长快,是有可能触顶的。而一旦主键类型需要从 int 改成 bigint,在有数据的大表上属于高成本操作。新表直接用 bigint 更省心,代价只是每行多 4 字节。

自增主键会不会在分布式环境下冲突?

单库单表不会,多库多表或分库分表会。这种情况下常见做法是:用号段模式让不同实例领取不同的自增区间,或者改用雪花算法生成有序的唯一 ID,或者把主键类型换成字符串用 UUID——但 UUID 作为聚簇索引主键会带来写入性能下降与索引膨胀的问题,需要权衡。

decimal 的精度该怎么写?

常用写法是 decimal(总位数, 小数位数)。金额场景通常用 decimal(10,2) 表示最多八位整数两位小数,上限约一千万,够绝大多数业务;如果涉及更大金额用 decimal(16,2) 或更高。注意第一个参数是总位数,不是整数位数,写成 decimal(2,10) 是非法的。

相关工具

编程开发
SQL转Golang Struct

SQL建表语句转Golang结构体代码,支持json/gorm/xorm/sqlx标签,自动识别主键和自增列

编程开发
JSON转SQL

在线JSON转SQL工具,将JSON数组转换为INSERT/UPDATE/DELETE SQL语句,支持MySQL/PostgreSQL/SQLite,自定义表名和引号风格

编程开发
SQL转Java代码

将SQL语句转换为Java JDBC PreparedStatement、MyBatis XML Mapper、Spring Data JPA Repository代码,支持SELECT/INSERT/UPDATE/DELETE自动识别

编程开发
Cron表达式生成器

在线Cron表达式生成器,支持5字段/6字段(秒级)双模式,可视化点击选值,实时预览表达式,下一次执行时间计算,常用预设一键导入,中文语义解释

编程开发
Docker Compose生成器

Docker Compose 生成器:勾选常用服务(数据库、缓存、消息队列、Web 运行时等),填写端口与凭据,一键生成规范的 compose.yaml,包含数据卷持久化、健康检查、启动依赖与网络配置。适合快速搭本地开发环境。

编程开发
curl命令生成器

在线生成curl命令,支持GET/POST/PUT/DELETE等方法,自定义Header、Body、认证(Basic/Bearer/API Key),纯本地处理

编程开发
CSS圆角生成器

可视化编辑border-radius四角独立圆角半径,支持联动/独立模式切换,px/%单位,8种预设形状,一键复制简化CSS代码

编程开发
CSS Loading动画生成

CSS Loading加载动画生成器,支持18种动画效果(新增发光脉冲/圆环扩散/变形方块/打字光标/心跳/渐变边框),自定义颜色/大小/速度,深色预览,可视化组合预览,一键复制CSS/HTML/组合代码