model 設計表 字段型別 屬性 不同表字段關係

2021-09-22 10:13:29 字數 2687 閱讀 3139

orm物件關係對映,通過物件(即struct)與資料庫的table一一對應

func main()2.模型定義

2.1自定義表名

2.2自定義索引

2.3 自定義引擎

2.4 設定引數

多個設定間使用;分隔,設定的值如果是多個,使用,分隔.

`orm:"null;rel(fk)"`

`orm:"-"`//忽略字段

`orm:"auto"`

`orm:"pk"`

`orm:"null"`

`orm:"index"`

`orm:"unique"`

`orm:"size(60)"`

`orm:"default(1)"`

`orm:"default(1);description(這是狀態字段)" `

type

created time.time `orm:"auto_now_add;type(date)"`

created time.time `orm:"auto_now_add;type(datetime)"`

created time.time `orm:"auto_now_add;type(datetime)"`

updated time.time `orm:"auto_now;type(datetime)"`

money float64 `orm:"digits(12);decimals(4)"`

表關係設定:1-1

`orm:"null;rel(one);on_delete(set_null)"` vs `orm:"reverse(one)"`

1-n `orm:"rel(fk)"` (在弱勢一方,即設定外來鍵) vs `orm:"reverse(many)"`(強勢一方)

n-n`orm:"rel(m2m)"` vs `orm:"reverse(many)"`

on_delete 設定對應的 rel 關係刪除時,如何處理關係字段:

cascade 級聯刪除(預設值)

set_null 設定為 null,需要設定 null = true

set_default 設定為預設值,需要設定 default 值

do_nothing 什麼也不做,忽略

go

mysql

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

bool

bool

string - 預設為 size 255varchar(size)

string - 設定 type(char) 時char(size)

string - 設定 type(text) 時longtext

time.time - 設定 type 為 date 時

date

time.time

datetime

bytetinyint unsigned

rune

integer

intinteger

int8

tinyint

int16

smallint

int32

integer

int64

bigint

uint

integer unsigned

uint8

tinyint unsigned

uint16

smallint unsigned

uint32

integer unsigned

uint64

bigint unsigned

float32

double precision

float64

double precision

float64 - 設定 digits, decimals 時

numeric(digits, decimals)

增加 修改表字段屬性

資料庫 mydb 表名 company 字段 id int 4 not null name varchar 30 not null 如何寫sql,將這2個字段的not null屬性設定為null 允許空 修改字段屬性 alter table 表名 modify 欄位名 型別屬性 not null 預...

MySQL 表字段型別選擇

mysql欄位型別大致分為以下幾類 字元型 char,varchar,set,enum,text,blob,longtext等 數字型 int,float,double,tinyint,decimal等 日期型 date,time,datetime 那麼對於設計表的時候該如何選擇欄位的資料型別?可以...

Hive表字段型別修改

a 建立一張和原表一樣表結構的複製表 b 通過插入語句 insert overwrite 使用動態分割槽把資料匯入複製表 set hive.exec dynamic.partition mode nonstrict create table table copy like table origina...