大家好,今天本人给大家带来文章《如何防止我的整个表被删除》,文中内容主要涉及到,如果你对golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!问题内容如果在下面的第一
大家好,今天本人给大家带来文章《如何防止我的整个表被删除》,文中内容主要涉及到,如果你对golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!
问题内容如果在下面的第一个查询中找不到我的 somemodel 的任何内容,删除语句将删除整个表。
delete from somemodels
防止这种情况的最佳方法是什么?
someModel := &SomeModel{}
db.Where("some_id = ? and other_id = ?", someModel.UserId, someModel.Id).First(&someModel)
db.Delete(&someModel)
目前我没有检查模型是否确实被发现并从数据库返回,我知道我应该检查,但是最好的方法是什么?
检查它是否不为零?型号.id > 0 ?
正如您所猜测的,它会删除整个表,因为找不到记录,即模型中没有任何内容可以用作条件,因此将条件留空并删除整个表。
您可以检查是否找到记录,而无需检查模型本身。
例如:
if !db.Where("some_id = ? and other_id = ?", someModel.UserId, someModel.Id).First(&someModel).RecordNotFound {
db.Delete(&someModel)
}
if err := db.Where("some_id = ? and other_id = ?", someModel.UserId, someModel.Id).First(&someModel).Error; err != nil {
if gORM.IsRecordNotFoundError(err) {
// record not found
} else {
// something else went wrong
}
} else {
db.Delete(&someModel)
}
好了,本文到此结束,带大家了解了《如何防止我的整个表被删除》,希望本文对你有所帮助!关注编程网公众号,给大家分享更多Golang知识!
--结束END--
本文标题: 如何防止我的整个表被删除
本文链接: https://lsjlt.com/news/596745.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-04-05
2024-04-05
2024-04-05
2024-04-04
2024-04-05
2024-04-05
2024-04-05
2024-04-05
2024-04-04
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0