SQL 建表语句转代码
转换所有处理都在浏览器本地完成,数据不上传服务器
把一条 CREATE TABLE 语句转成四种东西:JSON 样例数据(拿去当接口文档里的示例响应)、HTML 表单(按字段类型选好控件)、Yii2 模型(class、rules、attributeLabels 三件套)、Postman 集合(针对这张表的 CRUD 脚手架,可以直接导入)。字段类型是自动推断的:int 与 decimal 是数字、tinyint(1) 是布尔、date 与 datetime 各有自己的输入控件、enum 变成下拉框、text 与 json 变成多行文本。表单的 label 优先取字段的 COMMENT —— 建表时顺手写的那些中文注释在这里第一次派上用场。解析是照着真实输入写的:从 mysqldump 或客户端里复制出来的东西带着条件注释、DROP TABLE、索引与外键定义,这些都会被正确跳过,而不是让整个解析失败。
功能
- 四种产物:JSON 样例数据、HTML 表单、Yii2 ActiveRecord 模型、Postman 集合
- 自动识别字段类型:整型与 decimal 是数字、tinyint(1) 是布尔、date / datetime / time、json、text、enum
- 表单按类型选控件:单行文本、数字、日期、日期时间、时间、多行文本、下拉框(enum)、勾选框(布尔)
- 表单的 label 优先用字段的 COMMENT,没有注释才退回字段名
- 自增主键不进表单 —— 让用户手填一个 ID 只会让人以为必须填
- 可空的字段不带 required,字符类型带上 maxlength
- Yii 模型的 rules() 覆盖每一列,漏掉的属性会被 Yii 自己挡下来
- PHP 字符串里的单引号与反斜杠会正确转义
- Postman 集合含 List / Create / Get one / Update / Delete 五个请求与一个 baseUrl 变量
- 容忍真实输入:条件注释、DROP TABLE、索引与外键定义、行尾注释都会被跳过
- COMMENT 里的连字符不会被误当成 SQL 行注释切掉
- 全部在浏览器本地完成,建表语句不外传
使用方法
- 把 CREATE TABLE 语句粘进输入框
- 选要生成什么
- 复制结果 —— JSON 与 Postman 集合可以直接用,表单与模型需要按你的项目改一下命名空间与路径
常见问题
- 支持哪些数据库的建表语句?
- MySQL 是主要目标(含 MariaDB):反引号、AUTO_INCREMENT、COMMENT、enum、tinyint(1) 这些都按 MySQL 的语义处理。PostgreSQL 的建表语句大多也能读出字段与类型,但 serial、::text 这类写法会按普通类型处理。SQL Server 的 [dbo].[表名] 这类带方括号与点号的名字读不出来 —— 遇到时会直接报「没有找到 CREATE TABLE」,而不是猜一个表名出来。
- 一次只能处理一张表吗?
- 是。一段脚本里有多条 CREATE TABLE 时,只取第一条,其余的忽略。四种产物都是「针对一张表」的东西(表单的字段、模型的类名、集合的路径),一次生成四张表的产物只会是一份没法直接用的混合物。
- 为什么表单里没有自增主键?
- 因为那个值不该由填表的人提供。表单里出现一个 ID 输入框,用户会以为必须自己填一个 —— 而它要么由数据库生成、要么由后端自己管。Yii 模型那边正好相反:id 仍然留在 rules() 里(与 Yii 自己的 gii 生成器一致),因为更新已有记录时它是要校验的。
- JSON 里的值为什么是 string、0、2026-01-01 这种?
- 因为这是样例骨架,不是模拟数据。那些值一眼就能看出是占位符,不会被人误当成真实数据拿去用;而按类型给出的形状(数字是数字、布尔是布尔、json 是对象)才是它真正要传达的信息 —— 接口文档里示例响应的结构对不对,看的就是这个。需要像样的假数据请用模拟数据工具。
- Postman 集合怎么用?
- 把生成的内容存成 .json 文件,在 Postman 里 File → Import 导进去即可。里面的路径是按表名拼的(表叫 product 就是 /product),baseUrl 变量默认是 http://localhost:3000 —— 导入后改这一个变量就能指向你的环境。POST 与 PUT 的请求体是这个表的 JSON 骨架,直接发就能看出后端收不收得下这些字段。
- 建表语句会被上传吗?
- 不会。解析与生成全在浏览器内存里完成,页面不发送任何请求,断网也能用 —— 建表语句里常常带着字段命名与业务含义,它们不会离开这台设备。
相关工具
JSON 转代码
格式化把 JSON 样本转成 TypeScript interface、Go struct、Java class 或 Rust struct:不齐的键标成可选、类型冲突退化为联合类型。全程在浏览器本地生成。
cURL 工具箱(转代码 / 解析 / 构建)
网络粘贴 curl 命令转成七种语言的代码,或拆成方法、请求头与请求体的字段表;也能把一份 HTTP 请求反向构建成 curl 命令。
模拟数据
生成器按「字段名:类型」写几行字段,就能得到一整批格式逼真的模拟数据,可导出 JSON、CSV、TSV、SQL、XML、YAML 或 TOML。
表格转换
文本把 CSV、TSV 或 Markdown 表格互转:Markdown 表格、ASCII 边框表、HTML、JSON、CSV。按 RFC 4180 处理引号,列宽按显示宽度对齐。
时间戳转换
转换把 Unix 时间戳还原成日期时间,或反过来。秒 / 毫秒 / 微秒 / 纳秒自动识别,支持小数、负数与 Windows FILETIME。全部在浏览器本地完成。
日期计算
转换算两个日期之间相差多少天,或给一个日期加减若干天、周、月。日期用日历挑或直接粘贴,结束日期留空就与今天比较。全部在浏览器本地完成。