我希望在我的gorm数据库上有唯一和自动增量ID,即使来自以前创建和删除的条目。
我的数据库中有这个模型:
type Books struct {
ID uint `json:"-" gorm:"autoIncrement"`
Name string `json:"name"`
Author uint `json:"author"`
}
假设我创建了3本书,如果我运行,输出将是这样的:db.Find(&Books{})
[
{
id: 1,
name: "name1",
author: 123,
},
{
id: 2,
name: "name2",
author: 123,
},
{
id: 3,
name: "name3",
author: 123,
},
]
如果我按 ID 删除第 3 册,则执行以下操作:,如文档所述:https://gorm.io/docs/delete.html#Delete-with-primary-key,则删除第 3 册。db.Delete(&Books{}, 3)
所以,如果我再做一个发现,我会得到这个:
[
{
id: 1,
name: "name1",
author: 123,
},
{
id: 2,
name: "name2",
author: 123,
},
]
当我再创建一本书时,问题就出来了,因为它将有3个作为ID。
我希望新创建的书的ID为4,而不是3,所以我将有ID为1,2和4。
“查找我希望”的输出是:
[
{
id: 1,
name: "name1",
author: 123,
},
{
id: 2,
name: "name2",
author: 123,
},
{
id: 4,
name: "name4",
author: 123,
},
]
所以这基本上是我的问题。
我还想过做这样的事情:
type Books struct {
ID uint `json:"-" gorm:"autoIncrement"`
Name string `json:"name"`
Author uint `json:"author"`
Deleted bool `json:"-"`
}
然后,当我进行查找时,我会过滤已删除的=真实...但这会占用我的数据库文件太多空间,所以我需要另一种解决方案。
元芳怎么了
墨色风雨
相关分类