首頁 >後端開發 >Golang >GO - Gin/Gorm/Postgresql - 建立具有「有一個」關聯的外鍵

GO - Gin/Gorm/Postgresql - 建立具有「有一個」關聯的外鍵

王林
王林轉載
2024-02-09 20:18:091087瀏覽

GO - Gin/Gorm/Postgresql - 创建具有“有一个”关联的外键

php小編草莓為您介紹GO語言中使用Gin、Gorm和PostgreSQL創建具有"有一個"關聯的外鍵的方法。在開發過程中,我們經常會遇到需要建立表格之間關聯關係的情況。有時候,我們需要建立一個表與另一個表的"有一個"關聯,即一個表的記錄對應另一個表的一筆記錄。這種關聯關係可以透過外鍵來實現,在GO語言中,我們可以使用Gin框架進行路由處理,Gorm作為ORM工具與資料庫進行交互,而PostgreSQL則是一種強大的關係型資料庫。以下將為您詳細介紹如何使用這些工具來建立具有"有一個"關聯的外鍵。

問題內容

我已閱讀文件(https://gorm.io/docs/has_one.html)並按照建議進行測試,但無法建立關聯。 我的桌子看起來像這樣(名稱是義大利語)

models/tables.go

type teatroy struct {
    gorm.model
    nome  string
    posti int
}

type spettacoloxy struct {
    gorm.model
    nome   string
    teatro teatroy `gorm:"foreignkey:id"`
}

我主要使用經典的自動遷移

initializers.db.automigrate(&models.teatroy{}, &models.spettacoloxy{})

我得到的錯誤如下

"2023/04/02 16:12:24 E:/Work/Mota/cdbp4/server.go:13 ERROR: relation
"spettacolo_xies" does not exist (SQLSTATE 42P01) [33.459ms] [rows:0]
ALTER TABLE "teatro_ies" ADD CONSTRAINT "fk_spettacolo_xies_teatro"
FOREIGN KEY ("id") REFERENCES "spettacolo_xies"("id")"

建立「teatroy」後,當我建立「spettacoloxy」時,「teatro」欄位必須與一個且僅有一個「teatroy」關聯

提前感謝您的幫助

解決方法

將模型遷移程式碼更改為:

initializers.DB.AutoMigrate(&models.SpettacoloXY{}, &models.TeatroY{})

將消除錯誤並在資料庫中建立兩個表。

以上是GO - Gin/Gorm/Postgresql - 建立具有「有一個」關聯的外鍵的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除