SQL 轉 GORM

貼上 MySQL 建表語句,一鍵產生 Go GORM Model 結構體程式碼

輸入

輸出

型別對應表

SQL (MySQL)Go
tinyint(1)bool
tinyint / smallint / mediumint / yearint32
int / integerint
bigintint64
varchar / char / text / tinytext / mediumtext / longtext / enum / set / timestring
datetime / timestamp / datetime.Time
decimal / numericfloat64
floatfloat32
double / realfloat64
jsonjson.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 匯入。