首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

没有deleted_at的GORM Database.First(&tableStruct,id)为空

GORM是一个Go语言的ORM(对象关系映射)库,用于简化数据库操作。在GORM中,Database.First(&tableStruct, id)用于根据指定的id从数据库中查询记录并将结果存储到tableStruct结构体中。

对于没有deleted_at字段的情况,Database.First(&tableStruct, id)会根据指定的id查询数据库中的记录,并将结果存储到tableStruct中。如果查询结果为空,则tableStruct将被赋值为该结构体类型的零值。

在GORM中,deleted_at字段通常用于软删除,即将记录标记为已删除而不是物理删除。如果数据库表中没有deleted_at字段,那么查询结果为空可能有以下几种情况:

  1. 该id在数据库中不存在对应的记录。
  2. 数据库连接错误或查询语句错误导致查询失败。
  3. 数据库表中没有deleted_at字段,且该表中没有与指定id匹配的记录。

根据具体情况,可以采取以下措施:

  1. 确保数据库中存在对应id的记录,并检查数据库连接和查询语句是否正确。
  2. 如果确实没有deleted_at字段,可以通过其他字段或条件进行查询,或者使用其他查询方法来获取数据。
  3. 如果需要软删除功能,可以考虑在数据库表中添加deleted_at字段,并在查询时进行相应的过滤。

腾讯云提供了多个与数据库相关的产品和服务,例如:

  1. 云数据库 TencentDB:提供MySQL、SQL Server、PostgreSQL等数据库的托管服务,具备高可用、高性能、弹性扩展等特点。详情请参考:云数据库 TencentDB
  2. 云原生数据库 TDSQL:基于TiDB开源项目构建的云原生分布式数据库,具备强一致性、高可用性、弹性扩展等特点。详情请参考:云原生数据库 TDSQL
  3. 云数据库 Redis:提供高性能、高可用的内存数据库服务,支持主从复制、读写分离、持久化等功能。详情请参考:云数据库 Redis

以上是对于没有deleted_at的GORM查询的解释和相关腾讯云产品的介绍。如有其他问题,请继续提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Gorm实战,轻松掌握数据库增删改查技巧!

`gorm:"default:18"` Active sql.NullBool `gorm:"default:true"` } 注意 若要数据库有默认、虚拟/生成值,你必须字段设置 default...此外,如果相关 model 没有定义主键,那么将按 model 第一个字段进行排序。...Model 对象字段值与 Update、Updates 值是否相等,如果值有变更,且字段没有被忽略,则返回 true func (u *Student) BeforeUpdate(tx *gorm.DB...`deleted_at` IS NULL // 可以看到Name字段不会更新,这是合理,因为如果零值字段也更新,Student表中好多数据都会被更新 6.1 使用sql.NullString更新...拥有软删除能力模型调用 Delete 时,记录不会被数据库。但 GORM 会将 DeletedAt 置当前时间, 并且你不能再通过普通查询方法找到该记录。

3.3K20
  • gorm之Belongs To--属于

    有的小伙伴说,我没有女朋友怎么办?new一个对象出来! 那么我们gorm中怎么建立这种属于关系呢?又是怎么表示呢?为了照顾有些小伙伴情绪,我们一用户和邮箱、用户和手机号为例。..."` // //指定UserReferId关联字段 UserReferId uint `json:"userReferId"` //自定义关联字段...`deleted_at` IS NULL AND ((`user_id` = 1)) db.Model(&user).Related(&email) mobile := models.Mobile...") //我们通过关联关系可以更改对应信息 //例如 这里我们知道了邮箱,编辑邮箱信息时候可以直接更新用户信息,只需要赋值就好,gorm会自动帮我们处理 user.Name = "hanyun...`id` = 1 // UPDATE `mobiles` SET `updated_at` = '2020-03-21 17:56:12', `deleted_at` = NULL, `address

    89610

    Go开源ORM——GORM

    gorm.Model中定义了数据库表一些常用基本字段 type Model struct { ID uint `gorm:"primary_key"` CreatedAt time.Time...) 也可以使用下面语句替代 db.AutoMigrate(&User{}) 插入/更新记录 gorm.Model主键ID整数类型,映射到数据库时自动递增主键 Save方法接收一个结构体指针对象...println(user.ID) user.Name = "bb" db.Save(&user)//更新 如果该对象主键没有设定,或者是默认值0,则作为插入操作,由数据库策略生成主键(比如自增)插入记录...,默认由数据库自增 println(user.ID) NewRecord方法用于判断某个对象是否可以作为新纪录插入,如果该对象主键或者0,或者数据库表中不存在该主键记录,返回true,否则返回false...db.Create(&user) } 修改记录 Update和Updates方法提供对记录进行更新操作,可以通过Map或者struct传递更新属性,建议通过Map 因为通过struct更新时,FORM将仅更新具有非字段

    2.1K41

    go-zero 中使用 gorm gen

    , 在插入数据时需要赋值该字段值零值, 结构体字段须是指针类型才能成功, 即`FieldCoverable:true`配置下生成结构体字段. // 因为在插入时遇到字段零值会被GORM赋予默认值...如字段`age`表默认值10, 即使你显式设置0最后也会被GORM设为10提交. // 如果该字段没有上面提到插入时赋零值特殊需要, 则字段非指针类型使用起来会比较方便....// 将非默认字段名字段定义自动时间戳和软删除字段; // 自动时间戳默认字段名为:`updated_at`、`created_at, 表字段数据类型: INT 或 DATETIME /.../ 软删除默认字段名为:`deleted_at`, 表字段数据类型: DATETIME autoUpdateTimeField := gen.FieldGORMTag("updated_at", func...entity是gorm model代码 cmd下gen.go是gorm gen配置 pkg下gorm.go是自定义日志驱动以及配置连接池 +---app | +---account |

    83410
    领券