GO - Gin/Gorm/Postgresql - Create foreign key with 'has a' association

王林
Release: 2024-02-09 20:18:09
forward
1026 people have browsed it

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

php Xiaobian Strawberry introduces to you the method of using Gin, Gorm and PostgreSQL to create a foreign key with a "have" association in the GO language. During the development process, we often encounter situations where we need to establish relationships between tables. Sometimes, we need to establish a "one" association between a table and another table, that is, a record in one table corresponds to a record in another table. This association relationship can be realized through foreign keys. In the GO language, we can use the Gin framework for routing processing. Gorm is an ORM tool to interact with the database, and PostgreSQL is a powerful relational database. Below you will learn more about how to use these tools to create a foreign key with a "has a" association.

Question content

I have read the documentation (https://gorm.io/docs/has_one.html) and tested as suggested, but cannot create the association. My table looks like this (name is in Italian)

models/tables.go

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

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

I mainly use classic automatic migration

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

The error I get is as follows

"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")"
Copy after login

After creating "teatroy", when I create "spettacoloxy", the "teatro" field must be associated with one and only one "teatroy"

Thank you in advance for your help

Workaround

Change the model migration code to:

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

will eliminate the error and create two tables in the database.

The above is the detailed content of GO - Gin/Gorm/Postgresql - Create foreign key with 'has a' association. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:stackoverflow.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!