SQL 转 GORM
粘贴 MySQL 建表语句,一键生成 Go GORM Model 结构体代码
输入
输出
类型映射对照表
| SQL (MySQL) | Go |
|---|---|
| tinyint(1) | bool |
| tinyint / smallint / mediumint / year | int32 |
| int / integer | int |
| bigint | int64 |
| varchar / char / text / tinytext / mediumtext / longtext / enum / set / time | string |
| datetime / timestamp / date | time.Time |
| decimal / numeric | float64 |
| float | float32 |
| double / real | float64 |
| json | json.RawMessage |
| binary / varbinary / blob / tinyblob / mediumblob / longblob | []byte |
tinyint(1) 映射为 bool,其余 tinyint 映射为 int32;未识别的 SQL 类型统一映射为 string,并在生成代码中以注释标出。
使用说明
将一条或多条 MySQL CREATE TABLE 建表语句粘贴到输入框,按需勾选选项后点击「生成代码」,即可得到可直接编译的 Go GORM Model 代码(含 package 与 import)。支持主键、自增、非空、默认值、注释、唯一索引与普通索引等列属性的转换,多个建表语句会生成多个结构体。全部处理在浏览器本地完成,SQL 不会上传。
映射口径说明
unsigned 无符号类型统一映射为有符号 Go 类型(如 int unsigned → int),如需 uint 系列请手动调整;date 与 datetime/timestamp 一样映射为 time.Time(如需纯日期字符串可自行改为 string);decimal/numeric 映射为 float64,存在精度局限,涉及金额等精确计算建议改用 shopspring/decimal;json 映射为 json.RawMessage,生成代码会自动添加 encoding/json 导入。