好比利用 go web框架 beego中的orm 對象關係映射建立表git
type Article struct { Id int `orm:"pk;auto"` ArticleName string `orm:"size(20)"` Atime time.Time `orm:"auto_now"` Acount int `orm:"default(0);null"` Acontent string `orm:"size(500)"` Aimg string `orm:"size(100)"` }
由上面的代碼能夠看出,要給哪一個字段添加屬性,須要在這個字段後面添加 ``括起來的內容,格式爲 orm:「限制條件」 。那這些限制條件都有哪些呢?我在這裏給你們列了一個表格。web
限制條件 | 做用 |
---|---|
pk | 設置該字段爲主鍵 |
auto | 這隻該字段自增,可是要求該字段必須爲整型 |
default(0) | 設置該字段的默認值,須要注意字段類型和默認值類型一致 |
size(100) | 設置該字段長度爲100個字節,通常用來設置字符串類型 |
null | 設置該字段容許爲空,默認不容許爲空 |
unique | 設置該字段全局惟一 |
digits(12);decimals(4) | 設置浮點數位數和精度。好比這個是說,浮點數總共12位,小數位爲四位。 |
auto_now | 針對時間類型字段,做用是保存數據的更新時間 |
auto_now_add | 針對時間類型字段,做用是保存數據的添加時間 |
注意:當模型定義裏沒有主鍵時,符合int, int32, int64, uint, uint32, uint64 類型且名稱爲 Id 的 Field 將 被視爲主鍵,可以自增. "
Mysql中時間類型有date和datetime兩種類型,可是咱們go裏面只有time.time一種類型,若是項目裏面要求 精確的話,就須要指定類型,指定類型用的是type(date)或者type(datetime)sql