beego model

[go][beego][mysql] beego orm 模型字段与数据库类型的对应

2018年05月29日 22:25:26 Charles_Thanksopen in new window 阅读数 3279更多

分类专栏: 其他不归路open in new window

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SAopen in new window 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/Charles_Thanks/article/details/80503124open in new window

在此列出 ORM 推荐的对应数据库类型,自动建表功能也会以此为标准。

默认所有的字段都是 NOT NULL

MySQL

gomysql
int, int32 - 设置 auto 或者名称为 Id 时integer AUTO_INCREMENT
int64 - 设置 auto 或者名称为 Id 时bigint AUTO_INCREMENT
uint, uint32 - 设置 auto 或者名称为 Id 时integer unsigned AUTO_INCREMENT
uint64 - 设置 auto 或者名称为 Id 时bigint unsigned AUTO_INCREMENT
boolbool
string - 默认为 size 255varchar(size)
string - 设置 type(text) 时longtext
time.Time - 设置 type 为 date 时date
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 或者名称为 Id 时integer AUTOINCREMENT
boolbool
string - 默认为 size 255varchar(size)
string - 设置 type(text) 时text
time.Time - 设置 type 为 date 时date
time.Timedatetime
bytetinyint unsigned
runeinteger
intinteger
int8tinyint
int16smallint
int32integer
int64bigint
uintinteger unsigned
uint8tinyint unsigned
uint16smallint unsigned
uint32integer unsigned
uint64bigint unsigned
float32real
float64real
float64 - 设置 digits, decimals 时decimal

PostgreSQL

gopostgres
int, int32, int64, uint, uint32, uint64 - 设置 auto 或者名称为 Id 时serial
boolbool
string - 默认为 size 255varchar(size)
string - 设置 type(text) 时text
time.Time - 设置 type 为 date 时date
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, decimals 时numeric(digits, decimals)

关系型字段

其字段类型取决于对应的主键。

  • RelForeignKey
  • RelOneToOne
  • RelManyToMany
  • RelReverseOne
  • RelReverseMany
Last Updated:
Contributors: 刘荣杰