gorm.DeletedAt
gorm.DeletedAt是 GORM 用于实现软删除的特殊类型基于sql.NullTime或gorm.io/datatypes中的实现。基本特性表格特性说明类型本质sql.NullTime的扩展包含Time time.Time和Valid bool零值Validfalse表示记录未被删除删除时设置当前时间Validtrue查询时GORM 自动过滤Validtrue已删除的记录定义与使用goimport ( gorm.io/gorm time ) type User struct { ID uint gorm:primaryKey Name string CreatedAt time.Time UpdatedAt time.Time DeletedAt gorm.DeletedAt gorm:index // 软删除字段 }基本操作软删除不真正删除数据go// 删除用户设置 deleted_at 为当前时间 db.Delete(user) // SQL: UPDATE users SET deleted_at2026-07-24 08:23:00 WHERE id 1 // 批量软删除 db.Where(age ?, 60).Delete(User{})查询自动排除已删除go// 普通查询自动加 deleted_at IS NULL db.Find(users) // SQL: SELECT * FROM users WHERE deleted_at IS NULL db.First(user, 1) // SQL: SELECT * FROM users WHERE id 1 AND deleted_at IS NULL查询包含已删除的记录go// 使用 Unscoped 绕过软删除过滤 db.Unscoped().Find(users) // 查全部 db.Unscoped().First(user, 1) // 查单条包括已删除 // 只查已删除的 db.Unscoped().Where(deleted_at IS NOT NULL).Find(users)恢复软删除的记录go// 先找到记录包含已删除的 db.Unscoped().First(user, 1) // 恢复将 deleted_at 设为 NULL db.Model(user).Update(deleted_at, nil) // 或 db.Model(user).Update(deleted_at, gorm.DeletedAt{})永久删除go// 必须加 Unscoped否则只是软删除 db.Unscoped().Delete(user) // SQL: DELETE FROM users WHERE id 1与 null.Time 的关系go// gorm.DeletedAt 本质上就是 sql.NullTime 的别名扩展 type DeletedAt sql.NullTime // 所以它有 deletedAt.Time // 删除时间 deletedAt.Valid // true已删除, false未删除自定义软删除字段名gotype User struct { ID uint gorm:primaryKey Name string DeletedAt gorm.DeletedAt gorm:index;column:deleted_time // 自定义列名 }注意事项表格注意点说明必须加gorm:index否则查询性能差因为大部分查询都要过滤deleted_at IS NULL关联查询关联模型也会自动过滤已删除记录唯一索引软删除场景下唯一索引需要包含deleted_at否则删除后无法插入相同数据不兼容db.RowsAffected软删除返回的 RowsAffected 是更新数不是删除数唯一索引处理常见问题go// ❌ 错误这样删除后再插入相同 email 会报唯一冲突 type User struct { ID uint gorm:primaryKey Email string gorm:uniqueIndex DeletedAt gorm.DeletedAt gorm:index } // ✅ 正确唯一索引包含 deleted_at type User struct { ID uint gorm:primaryKey Email string gorm:uniqueIndex:idx_email_deleted DeletedAt gorm.DeletedAt gorm:uniqueIndex:idx_email_deleted }总结表格操作方法软删除db.Delete(user)查未删除db.Find(users)自动过滤查全部db.Unscoped().Find(users)恢复db.Model(user).Update(deleted_at, nil)永久删除db.Unscoped().Delete(user)

相关新闻

Hi-Res无损音质与经典动画重制:技术原理与体验升级

Hi-Res无损音质与经典动画重制:技术原理与体验升级

第一次看到“哆啦A梦《科学超电磁炮经典回溯》合辑【Hi-Res无损音质】纯享版”这个标题时,我愣了一下——这两个看似毫不相关的IP怎么会出现在同一个作品里?是粉丝混剪、官方联动,还是某种新的内容形态?更让我好奇的是&#xff0c…

2026/8/14 5:27:55 阅读更多 →
AI开发核心术语速查:Prompt、Context与Memory实战指南

AI开发核心术语速查:Prompt、Context与Memory实战指南

1. 项目概述在AI应用开发领域,掌握核心术语是高效工作的基础。这个术语速查表项目旨在为开发者提供一份关于Prompt(提示词)、Context(上下文)、Memory(记忆)和Tools(工具&#xff09…

2026/8/9 12:32:48 阅读更多 →
Claude API开发指南:对话AI集成与优化实践

Claude API开发指南:对话AI集成与优化实践

1. Claude API 概述 Claude API 是当前最先进的对话式 AI 接口之一,它基于 Anthropic 公司研发的大语言模型技术构建。作为一名长期从事 AI 应用开发的工程师,我认为这套 API 最吸引人的地方在于其出色的推理能力和自然的对话体验。不同于简单的问答机器…

2026/8/13 18:29:11 阅读更多 →

最新新闻

拼多多店群自动化管理系统:React Event层注入,表单填充速度碾压人工200倍

拼多多店群自动化管理系统:React Event层注入,表单填充速度碾压人工200倍

拼多多店群自动化管理系统:React Event层注入,表单填充速度碾压人工200倍 跑店群的兄弟都清楚,拼多多的批量抓取采集,是店群运营中最耗人力也最容易出错的环节。 采集竞品数据是店群运营的命脉。但各大平台的反爬系统越来越强&a…

2026/8/15 0:36:41 阅读更多 →
Windows系统文件srchadmin.dll丢失找不到问题解决

Windows系统文件srchadmin.dll丢失找不到问题解决

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

2026/8/15 0:36:41 阅读更多 →
微信读书笔记导出一键搞定:WeReader插件把Markdown整理变成3秒钟的事

微信读书笔记导出一键搞定:WeReader插件把Markdown整理变成3秒钟的事

微信读书笔记导出一键搞定:WeReader插件把Markdown整理变成3秒钟的事 【免费下载链接】wereader 一个浏览器扩展:主要用于微信读书做笔记,对常使用 Markdown 做笔记的读者比较有帮助。 项目地址: https://gitcode.com/gh_mirrors/wer/werea…

2026/8/15 0:36:41 阅读更多 →
拼多多店群自动化管理系统:20核并发不抢焦,单机跑通百店零报错

拼多多店群自动化管理系统:20核并发不抢焦,单机跑通百店零报错

拼多多店群自动化管理系统:20核并发不抢焦,单机跑通百店零报错 搞店群运营这行,拼多多的自动提报活动,是店群运营中最耗人力也最容易出错的环节。 平台大促活动报名是流量红利窗口,但提报流程极其繁琐。每个活动要填…

2026/8/15 0:35:41 阅读更多 →
ChatGPT、Codex实战:Linux桌面版怎么用?Ubuntu、Debian、Fedora跑Codex前先检查这6项

ChatGPT、Codex实战:Linux桌面版怎么用?Ubuntu、Debian、Fedora跑Codex前先检查这6项

Linux用户以前使用Codex,更多是在CLI或者IDE里完成。现在OpenAI已经推出 ChatGPT Linux桌面版Preview。当前官方支持Ubuntu 24.04/26.04、Debian 13、Fedora 43/44,并提供x64和ARM64版本;登录ChatGPT账号以后,可以直接使用Project…

2026/8/15 0:34:41 阅读更多 →
ChatGPT、Codex实战:从Claude Code / Cursor迁移到Codex怎么做?/import最容易漏掉哪些配置?

ChatGPT、Codex实战:从Claude Code / Cursor迁移到Codex怎么做?/import最容易漏掉哪些配置?

从Claude Code或者Cursor切到Codex,很多人最先关心的是:历史聊天、规则、Skills能不能一起搬过去?现在Codex已经提供正式的Import能力。桌面端可以从其他Agent导入支持的配置和近期工作,CLI里也可以直接使用:/import目…

2026/8/15 0:34:40 阅读更多 →

日新闻

内景 空间站内部 中国空间站 太空 内仓

内景 空间站内部 中国空间站 太空 内仓

本项目为前几天收费帮学妹做的一个项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 空间站内部 中国空间站 太空 内仓 地址:本地PC端运行(或Web…

2026/8/15 0:00:30 阅读更多 →
重新定义数据接口:3个突破性场景让通达信数据读取更智能

重新定义数据接口:3个突破性场景让通达信数据读取更智能

重新定义数据接口:3个突破性场景让通达信数据读取更智能 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 当我们面对海量金融数据时,传统的数据获取方式往往让我们陷入困境—…

2026/8/15 0:00:30 阅读更多 →
一文读懂快消WMS怎么选?2026年国内外10大主流WMS品牌盘点

一文读懂快消WMS怎么选?2026年国内外10大主流WMS品牌盘点

快消品(FMCG)是流通速度较快、竞争较为激烈的行业之一。一瓶饮料从出厂到消费者手中,往往只有几十天甚至几天的周转窗口。这决定了快消行业的仓储管理系统(WMS)与制造业、电商行业存在明显区别:它不仅需要管…

2026/8/15 0:02:30 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/13 10:41:52 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/13 10:41:51 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/14 13:40:53 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/14 14:06:45 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/13 10:41:49 阅读更多 →