在此列出 ORM 推荐的对应数据库类型,自动建表功能也会以此为标准。默认所有的字段都是 NOT NULL
MySQL
gomysql
int,int32-设置auto或者名称为Idinteger AUTO_INCREMENT
int64-设置auto或者名称为Idbigint AUTO_INCREMENT
uint,uint32 -设置auto或者名称为Idinteger unsigned AUTO_INCREMENT
uint64 -设置auto或者名称为Idbigint unsigned AUTO_INCREMENT
boolbool
string -默认为size 255varchar(size)
string -设置type(text) longtext
time.Time-设置type为datedate
time.Timedatetime
bytetinyint unsigned
runeinteger
intinteger
int8tinyint
int16smallint
int32integer
int64bigint
uintinteger unsigned
uint8tinyint unsigned
uint16smallint unsigned
uint32integer unsigned
uint64bigint unsigned
float32double precision
float64double precision
float64-设置digits, decimals numeric(digits,decimals)
Sqlite3
gosqlite3
int,int32,int64,uint,uint32,uint64 -设置auto或者名称为Idinteger AUTOINCREMENT
boolbool
string -默认为size 255varchar(size)
string -设置type(text)text
time.Time -设置type为datedate
time.Timedatetime
bytetinyint unsigned
runeinteger
intinteger
int8tinyint
int16smallint
int32integer
int64bigint
uintinteger unsigned
uint8tinyint unsigned
uint16smallint unsigned
uint32integer unsigned
uint64bigint unsigned
float32real
float64real
float64 -设置digits,decimalsdecimal
PostgreSQL
gopostgres
int,int32,int64,uint,uint32,uint64 -设置auto或者名称为Idserial
boolbool
string -默认为size 255varchar(size)
string -设置type(text) text
time.Time -设置type为datedate
time.Timetimestamp with time zone
bytesmallint CHECK(“column”>= 0 AND“column”<= 255)
runeinteger
intinteger
int8smallint CHECK(“column”>= -127 AND“column”<= 128)
int16smallint
int32integer
int64bigint
uintbigint CHECK(“column”>= 0)
uint8smallint CHECK(“column”>= 0 AND“column”<= 255)
uint16integer CHECK(“column”>= 0)
uint32bigint CHECK(“column”>= 0)
uint64bigint CHECK(“column”>= 0)
float32double precision
float64double precision
float64 -设置digits,decimalsnumeric(digits,decimals)
关系型字段
其字段类型取决于对应的主键。
RelForeignKey
RelOneToOne
RelManyToMany
RelReverseOne
RelReverseMany
网友评论