首頁 > 後端開發 > Golang > 主體

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

王林
發布: 2024-02-09 20:18:09
轉載
1026 人瀏覽過

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
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!