Gorm框架 删除数据
删除模型数据一般用于删除之前查询出来的模型变量绑定的记录。
1. Gorm 删除数据
Gorm 删除数据的语法:
db.Delete(模型变量)
Gorm 删除数据的范例:
food := Food{} // 先查询一条记录, 保存在模型变量 food // 等价于: SELECT * FROM `foods` WHERE (id = '2') LIMIT 1 db.Where("id = ?", 2).Take(&food) // 删除 food 对应的记录,通过主键 Id 标识记录 // 等价于: DELETE from `foods` where id=2; db.Delete(&food)
2. 根据 Where 条件删除数据
Gorm 条件删除数据的语法:
db.Where(条件表达式).Delete(空模型变量指针)
Gorm 条件删除数据的范例:
// 等价于:DELETE from `foods` where (`type` = 5); db.Where("type = ?", 5).Delete(&Food{})
提示:这里Delete函数需要传递一个空的模型变量指针,主要用于获取模型变量绑定的表名。 不能传递一个非空的模型变量,否则就变成删除指定的模型数据,自动在where语句加上类似id = 2这样的主键约束条件。
自动事务:通过 db.Transaction 函数实现事务,如果闭包函数返回错误,则回滚事务。手动事务:在开发中经常需要数据库事务来保证多个数据库写操作的原子性。例如电商系统中的扣减库存和保存订单。// 开启事务 tx := db.Begin();tx.Rollback();tx.Commit()。