亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

golang ORM 表名稱

golang ORM 表名稱

Go
慕工程0101907 2023-07-17 14:32:02
我有一些代碼可以在 Postgres DB 中創建表import (    "github.com/jinzhu/gorm"    _ "github.com/lib/pq")type Table struct {    Id   int    `gorm:"primary_key"`    Name string `gorm:"type:varchar(100)"`    Addr string `gorm:"type:varchar(100)"`}func main() {    db, _ := gorm.Open("postgres", "user=postgres password=poilo777 dbname=mydb sslmode=disable")    defer db.Close()    db.CreateTable(&Table{})     user := &Table{Name: "ololo", Addr: "pololo"}我面臨兩個問題:1)在數據庫中創建了一個表“tables”而不是“Table”2)如何在現有的另一個表中插入數據?(例如“用戶”)
查看完整描述

3 回答

?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

1)您可以將Table的表名設置為table

func (Table) TableName() string {
    return "table"
    }

另一種方法是將singleTable設置為true,那么Table默認表名將table代替tables。但它會對所有表產生相同的影響。

set db.SingularTable(true)

2) 在 ORM 中你應該定義你的表對象。這是一個名為 的結構Table。Gorm 將在數據庫中創建一個名為的新表,tables除非您想覆蓋表的名稱,您可以按照步驟 1 操作。


查看完整回答
反對 回復 2023-07-17
?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

默認情況下,golang Postgres 客戶端將隱式使用您 姓名的復數形式struct[1]。例如


type Student struct {

   FirstName string

   LastName string

}

// will create a table name `students`

您可以像下面這樣覆蓋它,具體取決于您使用的內容


藍色的

// Set User's table name to be `profiles`

func (Student) TableName() string {

  return "college_students"

}

GO-PQ

type Student struct {

    tableName struct{} `pg:"college_students,alias:g"``

}

https://gorm.io/docs/conventions.html#Pluralized-Table-Name


查看完整回答
反對 回復 2023-07-17
?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

我對這個問題的解決:


    db.Table("my_table").CreateTable(&Table{})


    user := &Table{Name: "ololo", Addr: "pololo"}

    db.Table("my_table").Create(user) 


這段代碼創建了my_table我想要的表


查看完整回答
反對 回復 2023-07-17
  • 3 回答
  • 0 關注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號