当前位置: 首页 > news >正文

Java转Go日记(四十一):Gorm删除

1.1.1. 删除/软删除

警告删除记录时,需要确保其主要字段具有值,GORM将使用主键删除记录,如果主要字段为空,GORM将删除模型的所有记录

    // 删除存在的记录db.Delete(&email)DELETE from emails where id=10;// 为Delete语句添加额外的SQL选项db.Set("gorm:delete_option", "OPTION (OPTIMIZE FOR UNKNOWN)").Delete(&email)DELETE from emails where id=10 OPTION (OPTIMIZE FOR UNKNOWN);

1.1.2. 批量删除

删除所有匹配记录

    db.Where("email LIKE ?", "%jinzhu%").Delete(Email{})DELETE from emails where email LIKE "%jinhu%";db.Delete(Email{}, "email LIKE ?", "%jinzhu%")DELETE from emails where email LIKE "%jinhu%";

1.1.3. 软删除

如果模型有DeletedAt字段,它将自动获得软删除功能! 那么在调用Delete时不会从数据库中永久删除,而是只将字段DeletedAt的值设置为当前时间。

    db.Delete(&user)UPDATE users SET deleted_at="2013-10-29 10:23" WHERE id = 111;// 批量删除db.Where("age = ?", 20).Delete(&User{})UPDATE users SET deleted_at="2013-10-29 10:23" WHERE age = 20;// 软删除的记录将在查询时被忽略db.Where("age = 20").Find(&user)SELECT * FROM users WHERE age = 20 AND deleted_at IS NULL;// 使用Unscoped查找软删除的记录db.Unscoped().Where("age = 20").Find(&users)SELECT * FROM users WHERE age = 20;// 使用Unscoped永久删除记录db.Unscoped().Delete(&order)DELETE FROM orders WHERE id=10;
http://www.dtcms.com/a/201965.html

相关文章:

  • 【iOS】类结构分析
  • 中间件-seata
  • [Linux] Linux线程信号的原理与应用
  • (二十四)Java网络编程全面解析:从基础到实践
  • 在 Excel 中使用通义灵码辅助开发 VBA 程序
  • LeetCode 1345. 跳跃游戏 IV(困难)
  • ZooKeeper 原理解析及优劣比较
  • Gartner《AI Infrastructure WithKubernetes参考架构》学习心得
  • LabVIEW下AI开发
  • 杰里7006d日志分析
  • 前端混色实现半透明效果
  • conda 设置env后,环境还是安装在c盘的解决方式:
  • CSS专题之常见布局
  • 虚拟环境中VSCode运行jupyter文件
  • Spring Boot中的分布式缓存方案
  • LSTM语言模型验证代码
  • 零售智能执行大模型架构设计:从空间建模到上下文推理,再到智能Agent
  • 小程序涉及提供提供文本深度合成技术,请补充选择:深度合成-AI问答类目
  • 【Redisson】快速实现分布式锁
  • 打卡第二十三天
  • 车道线检测:自动驾驶的“眼睛”
  • 通义灵码助力Neo4J开发:快速上手与智能编码技巧
  • css使用clip-path属性切割显示可见内容
  • 【深度学习】Transformer 的应用
  • Python的collections模块:数据结构的百宝箱
  • OSA实战笔记二
  • ESP8266-12S开发板控制IO控制输出-走马灯---学习系列,含代码
  • 联合索引失效情况分析
  • Windows 安装Anaconda
  • 小米便签源码部署流程