piapia123
zh

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 行注释切掉
  • 全部在浏览器本地完成,建表语句不外传

使用方法

  1. 把 CREATE TABLE 语句粘进输入框
  2. 选要生成什么
  3. 复制结果 —— 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 骨架,直接发就能看出后端收不收得下这些字段。
建表语句会被上传吗?
不会。解析与生成全在浏览器内存里完成,页面不发送任何请求,断网也能用 —— 建表语句里常常带着字段命名与业务含义,它们不会离开这台设备。

相关工具