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 匯入。