使用 GORM 创建或更新记录
GORM 提供了两种管理数据库中记录的方法:FirstOrCreate() 和 FirstOrInit()。但是,有时您可能会遇到需要区分创建和更新记录的情况。
检查记录创建
FirstOrCreate() 尝试根据记录查找记录根据指定的标准。如果存在,则返回现有记录。如果不存在,则创建一条新记录并返回新创建的记录。
要检查记录是否实际创建,您可以在事务中使用 Create 方法。如果交易成功,则记录已创建。如果交易失败,则意味着该记录已存在且尚未创建。
使用 GORM 更新插入
从 GORM 1.20.x 开始,这是一个方便的功能称为“Upsert”可用。它通过提供兼容的“冲突时更新插入”机制结合了 CreateOrUpdateRecord 的功能。
此查询转换为 SQL 语句,例如:
FirstOrInit 与 FirstOrCreate
重要的是要注意 FirstOrInit()和 FirstOrCreate() 有不同的用途。 FirstOrInit() 初始化一个结构体,但不会在数据库中创建记录。另一方面,FirstOrCreate() 将创建一条记录,然后将其查询到提供的结构中。
以上是我什么时候应该在 GORM 中使用 FirstOrCreate() 与 FirstOrInit() ?的详细内容。更多信息请关注PHP中文网其他相关文章!