英文:
How to avoid generating Default primary key id in Golang (beego) model?
问题
我正在尝试创建一个 REST API。我已经有了一个数据库。我想创建一个与数据库表相关联的结构体。但是当我运行项目时,beego会自动为注册的模型创建一个“id”主键。如何在beego中避免这个问题?
我的代码示例:
模型:
type Person struct {
PersonId string json:"person_id"
name string json:"name"
email string json:"email"
}
问题:在使用beego时遇到需要一个主键字段的问题
它在数据库表中创建了一个默认为null值的id字段。
注意:person_id是person表中的主键。
英文:
I am trying to create a rest API. I have already a database. I want to create a struct linked to a database table. But when I run the project beego automatically creates an "id" primary key for the model registered. How to avoid this in beego?
My code example:
Model:
type Person struct {
PersonId string `json:"person_id"`
name string `json:"name"`
email string `json:"email"`
}
Problem: Encounter need a primary key field when using beego
It creates an id field in db table with default null value.
Note: person_id is the primary key in person table.
答案1
得分: 1
如果你想让Beego的ORM使用不同的主键,你可以这样做:
type Person struct {
PersonId int64 `orm:"pk" json:"person_id"`
name string `json:"name"`
email string `json:"email"`
}
你可以在主键部分查看官方文档:
Beego模型定义
这可能是因为在创建表时,你将primary_key设置为auto。这是Beego的默认行为。
请也参考这篇文章:
Beego的ORM在每次更新、删除、读取时都给出主键值
英文:
If you want Beego’s ORM to have a different primary key, you should use this:
type Person struct {
PersonId int64 `orm:"pk" json:"person_id"`
name string `json:"name"`
email string `json:"email"`
}
You can check the official documentation here in the primary key section:
Beego Model Definition
This might be happening because when creating your table you have primary_key set to auto. Which is the default Beego behaviour.
Please check this article also:
https://developpaper.com/question/beegos-orm-gives-the-primary-key-value-every-update-delete-read/
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论