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()。