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

AI Agent 跑完任务怎么通知你?我写了个微信推送服务冉

1、普通的insert into如果主键/唯一建存在则会报错新需求就算冲突也不报错用其他处理逻辑回到顶部2、基本语法INSERT INTO ... ON CONFLICT (...) DO (UPDATE SET ...)/(NOTHING)语法图“保留旧数据静默跳过”“用新数据替换或修改旧数据”“是只更新部分字段”“是需满足条件才更新”“否全量覆盖”开始: INSERT发生主键/唯一冲突冲突后的期望是?使用 ON CONFLICT DO NOTHING使用 ON CONFLICT DO UPDATE SET需要精细控制吗?在SET中仅指定目标字段添加WHERE子句使用EXCLUDED.*或指定所有字段?? 两种核心处理逻辑为了方便你对比和理解我将它们总结在下表中处理逻辑 关键字 核心行为与目的 类比1. 静默放弃 DO NOTHING 如果冲突数据已存在就什么也不做静默地保留现有数据并让语句成功结束。 “无视”看到店里已有同样的商品就决定不放了直接离开。2. 更新覆盖 DO UPDATE SET ... 如果冲突数据已存在就用新值更新已有的那条记录。 “置换”看到店里已有同样的商品就用你手里的新款替换掉旧款。语法1DO UPDATE SETINSERT INTO 表名 (列1, 列2, ...)VALUES (值1, 值2, ...)ON CONFLICT (冲突列[可以多个])DO UPDATE SET列1 EXCLUDED.列1,列2 EXCLUDED.列2,...;语法2DO NOTHINGINSERT INTO table_name (column1, column2, ...)VALUES (value1, value2, ...)ON CONFLICT (冲突列[可以多个])DO NOTHING;回到顶部3、示例3.1、简单示例-- 示例1: DO NOTHING - 确保数据唯一重复则忽略-- 场景收集用户邮箱同一邮箱只记录第一次出现INSERT INTO user_emails (email, collected_at, source)VALUES (aliceexample.com, NOW(), 官网抽奖)ON CONFLICT (email)DO NOTHING; -- 如果邮箱已存在则静默跳过不报错-- 示例2: DO UPDATE SET - 用最新信息覆盖旧记录-- 场景更新用户的最后登录状态INSERT INTO user_sessions (user_id, last_login_ip, last_login_time, login_count)VALUES (123, 192.168.1.100, NOW(), 1)ON CONFLICT (user_id)DO UPDATE SETlast_login_ip EXCLUDED.last_login_ip, -- 使用本次尝试插入的新IPlast_login_time EXCLUDED.last_login_time, -- 更新时间login_count user_sessions.login_count 1; -- 在原有次数上累加3.2、ON CONFLICT 多列组合唯一约束示例场景说明假设我们有一个学生选课记录表设计逻辑是单个学生可以选多门课单门课程可以被多个学生选但 一个学生不能重复选同一门课即 (student_id, course_id) 组合必须唯一示例表结构CREATE TABLE student_courses (-- 自增主键但不是业务唯一键id SERIAL PRIMARY KEY,student_id INT NOT NULL,course_id INT NOT NULL,selected_at TIMESTAMP DEFAULT NOW(),status VARCHAR(20) DEFAULT active,-- 关键为(student_id, course_id)创建组合唯一约束CONSTRAINT unique_student_course UNIQUE (student_id, course_id));示例数据假设表中已有数据id student_id course_id selected_at status1 1001 101 2024-01-01 active2 1001 102 2024-01-02 active3 1002 101 2024-01-03 active场景1尝试重复选课 → 使用 DO NOTHING学生1001想再次选择课程101已存在我们静默拒绝INSERT INTO student_courses (student_id, course_id, selected_at)VALUES (1001, 101, NOW()) -- (1001,101)组合已存在ON CONFLICT (student_id, course_id) -- 指定两列组合为冲突目标DO NOTHING; -- 什么都不做防止重复选课-- 结果语句执行成功但没有插入新行-- 表数据保持不变场景2尝试重复选课 → 使用 DO UPDATE SET学生1001重复选课101但我们允许更新选择时间和状态INSERT INTO student_courses (student_id, course_id, selected_at, status)VALUES (1001, 101, NOW(), renewed) -- 再次尝试选择已选课程ON CONFLICT (student_id, course_id) -- 检测(student_id, course_id)组合冲突DO UPDATE SETselected_at EXCLUDED.selected_at, -- 更新时间戳status EXCLUDED.status, -- 更新状态id student_courses.id -- 保持原id不变避免主键冲突RETURNING *; -- 返回更新后的行-- 结果不会创建新行而是更新id1的记录-- 将selected_at更新为当前时间status更新为renewed场景3混合情况处理批量插入选课记录处理各种冲突情况INSERT INTO student_courses (student_id, course_id, selected_at)VALUES(1001, 103, NOW()), -- 新组合插入成功(1001, 101, NOW()), -- 已存在组合触发ON CONFLICT(1002, 102, NOW()) -- 新组合插入成功ON CONFLICT (student_id, course_id)DO UPDATE SETselected_at EXCLUDED.selected_at,status refreshedRETURNING student_id, course_id, selected_at;输出结果可能student_id | course_id | selected_at------------------------------------------------1001 | 103 | 2024-06-15 10:30:00.000 -- 新插入1001 | 101 | 2024-06-15 10:30:00.000 -- 更新冲突处理1002 | 102 | 2024-06-15 10:30:00.000 -- 新插入3.3、其他多列唯一约束示例示例1会议室预订系统-- 确保同一会议室在同一时间段不被重复预订-- 唯一约束(room_id, date, time_slot)INSERT INTO room_bookings (room_id, date, time_slot, booker_name)VALUES (101, 2024-06-20, 09:00-10:00, 张三)ON CONFLICT (room_id, date, time_slot)DO NOTHING; -- 时间段冲突则直接拒绝示例2用户-产品评分表-- 确保一个用户对同一产品只能评分一次-- 唯一约束(user_id, product_id)INSERT INTO product_ratings (user_id, product_id, rating, review)VALUES (5001, 3005, 5, 非常好用)ON CONFLICT (user_id, product_id)DO UPDATE SETrating EXCLUDED.rating,review EXCLUDED.review,rated_at NOW();关键要点总结语法格式ON CONFLICT (column1, column2, ...) 用括号包含多个列约束要求这些列必须已定义组合唯一约束可以是复合主键或复合唯一约束冲突检测只有当所有指定列的值都完全匹配时才被认为是冲突常见场景多对多关系表、时间-资源组合、用户-实体关联表等这种多列约束特别适合处理业务层面的组合唯一性要求而不仅仅是技术上的主键唯一性。回到顶部4、特殊参数解析冲突列[可以多个]ON CONFLICT 后面必须指定一个唯一约束主键也可以字段多个字段唯一也可以关键机制冲突目标ON CONFLICT 后面必须指定一个唯一约束通常是主键或唯一索引。当插入的数据在这个约束上与已有数据冲突时就会触发 UPDATE 操作。约束要求这些列必须已定义组合唯一约束可以是复合主键或复合唯一约束EXCLUDED 伪表在 DO UPDATE SET 子句中你可以使用 EXCLUDED.列名 来引用本次尝试插入但发生了冲突的那些值这是实现“用新值覆盖旧值”的关键。甘仿冒诖

相关文章:

AI Agent 跑完任务怎么通知你?我写了个微信推送服务冉

1、普通的insert into 如果(主键/唯一建)存在,则会报错 新需求:就算冲突也不报错,用其他处理逻辑 回到顶部 2、基本语法(INSERT INTO ... ON CONFLICT (...) DO (UPDATE SET ...)/(NOTHING)) 语…...

Input Leap:一套键鼠控制多台电脑的终极解决方案

Input Leap:一套键鼠控制多台电脑的终极解决方案 【免费下载链接】input-leap Open-source KVM software 项目地址: https://gitcode.com/gh_mirrors/in/input-leap 你是否曾在多台电脑之间频繁切换,每次都要伸手去拿不同的键盘和鼠标&#xff1f…...

2026奇点智能技术大会核心洞察(工具链调用能力已成大模型商用分水岭)

第一章:2026奇点智能技术大会:大模型工具调用 2026奇点智能技术大会(https://ml-summit.org) 工具调用范式的根本性跃迁 2026奇点智能技术大会首次系统性定义了“意图对齐型工具调用”(Intent-Aligned Tool Calling, IATC)协议&…...

HagiCode Soul 平台技术解析:从需求萌发到独立平台的演进之路奶

1 安装与初始化 # 全局安装 OpenSpec npm install -g fission-ai/openspeclatest # 在项目目录下初始化 cd /path/to/your-project openspec init 初始化时,OpenSpec 会提示你选择使用的 AI 工具(Claude Code、Cursor、Trae、Qoder 等)。 3 O…...

Matlab实现频率切片小波变换(FSWT)源代码:一维信号的时频图生成与应用

Matlab进行频率切片小波变换(FSWT)源代码,将一维信号生成时频图。 输入信号可以是任何一维信号,心电信号、脑电信号、地震波形、电流电压数据等。 相比连续小波变换(CWT),频率切片小波变换(Frequency Slice Wavelet Transform,FSWT)是一种更具…...

技术分析:League Akari智能游戏辅助工具的设计架构与配置策略

技术分析:League Akari智能游戏辅助工具的设计架构与配置策略 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari作为一个…...

【SITS2026独家解密】:联邦大模型安全水印机制、梯度泄露防御阈值、合规审计日志模板——仅限本届参会者获取的3份白皮书级资料

第一章:SITS2026演讲:大模型联邦学习应用 2026奇点智能技术大会(https://ml-summit.org) 在SITS2026主会场,来自MIT与华为诺亚方舟实验室的联合团队展示了基于LLaMA-3架构的大模型联邦学习新范式——FedLLM。该方案突破传统参数平均&#x…...

信创集成项目管理师证书到底值不值得考?5年IT老兵亲测避坑指南

信创集成项目管理师证书到底值不值得考?5年IT老兵亲测避坑指南 当我在2020年第一次听说信创集成项目管理师证书时,正面临职业瓶颈期——作为某金融科技公司的技术主管,手头负责的国产化替代项目频频遇到供应商适配问题。那时团队里突然有同事…...

15分钟完成黑苹果配置:OpCore-Simplify自动化工具终极指南

15分钟完成黑苹果配置:OpCore-Simplify自动化工具终极指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的黑苹果配置而头疼吗…...

从开源硬件到空间AI:深度解析OAK(OpenCV AI Kit)的架构与核心优势

1. OAK的前世今生:从自行车安全到空间AI革命 第一次听说OAK(OpenCV AI Kit)是在2021年的一个机器人开发者社区里,当时有个做智能仓储的朋友兴奋地告诉我:"这玩意儿把双目视觉、AI推理和视频编码全塞进了一个火柴盒…...

MoE架构演进全景图,从Mixtral到2026奇点大会最新动态及企业部署路线图

第一章:MoE架构演进全景图:从Mixtral到2026奇点大会的范式跃迁 2026奇点智能技术大会(https://ml-summit.org) MoE(Mixture of Experts)已从早期稀疏路由实验,演进为支撑万亿参数模型落地的核心范式。Mixtral 8x7B 的…...

为什么92%的大模型项目卡在集群规模化阶段?3个被低估的工程瓶颈与可立即部署的轻量级编排方案

第一章:大模型工程化多集群管理方案 2026奇点智能技术大会(https://ml-summit.org) 大模型训练与推理的规模化落地,正驱动企业从单集群架构向跨地域、多异构环境的联邦式集群体系演进。单一Kubernetes集群已难以承载模型版本灰度发布、数据合规隔离、算…...

Neeshck-Z-lmage_LYX_v2问题解决:常见报错与参数调节技巧

Neeshck-Z-lmage_LYX_v2问题解决:常见报错与参数调节技巧 1. 引言:为什么需要这份指南? 当你第一次打开Neeshck-Z-lmage_LYX_v2这个本地AI绘画工具时,可能会被它简洁的界面所迷惑——几个滑块、一个输入框和一个生成按钮&#x…...

TVA思维之魂:让 TVA 成为制造业质量升级核心引擎

AI智能体视觉检测系统(TVA) 在制造业质量管理中的应用,绝非 “买设备、装产线” 的简单操作,而是一项覆盖选型、标准、数据、运维、全链条管控、团队建设的系统工程。多数企业陷入的各类误区与盲点,本质上是对 TVA 核心…...

我让 Claude 和 Codex 同时审计 个模块,它们只在 个上达成共识砸

整体排查思路 我们的目标是验证以下三个环节是否正常: 登录成功时:服务器是否正确生成了Session并返回了包含正确 JSESSIONID的Cookie给浏览器。 浏览器端:浏览器是否成功接收并存储了该Cookie。 后续请求:浏览器在执行查询等操作…...

m4s-converter终极指南:5秒将B站缓存视频永久保存为MP4

m4s-converter终极指南:5秒将B站缓存视频永久保存为MP4 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter m4s-converter是一款专为B站用…...

Qwen3-14B镜像免配置部署教程:Python 3.10+PyTorch 2.4开箱即用指南

Qwen3-14B镜像免配置部署教程:Python 3.10PyTorch 2.4开箱即用指南 1. 镜像概述与核心优势 Qwen3-14B私有部署镜像是一款专为RTX 4090D 24GB显存显卡优化的开箱即用解决方案。这个镜像最大的特点就是"零配置"——所有环境依赖、模型权重、优化组件都已预…...

数字后端设计中的Floorplan实战:从基础到优化

1. 数字后端设计中的Floorplan基础概念 第一次接触数字后端设计时,听到"Floorplan"这个词我以为是建筑平面图。后来才发现,芯片设计和建筑设计还真有异曲同工之妙。Floorplan就是芯片设计的"平面布局图",它决定了芯片内部…...

使用PDF-Extract-Kit-1.0构建文档问答系统

使用PDF-Extract-Kit-1.0构建文档问答系统 1. 开篇:当PDF文档遇上智能问答 你有没有遇到过这样的情况:手头有一大堆PDF文档,需要快速找到某个特定信息,却不得不一页页翻找?或者需要从大量技术文档中提取关键知识点&a…...

给硬件工程师讲明白:为什么DDR读写时DQS和DQ要对齐两次?

为什么DDR读写时DQS和DQ要对齐两次?硬件工程师的深度解析 调试DDR接口时序时,很多工程师都会遇到一个令人困惑的现象:读操作要求DQS边沿与DQ边沿对齐,而写操作却要求DQS边沿与DQ中心对齐。这种"双重标准"背后隐藏着怎样…...

Xcode开发者福音:Baidu Comate 3.5S实战体验(附iOS项目避坑指南)

Xcode开发者福音:Baidu Comate 3.5S实战体验(附iOS项目避坑指南) 作为一名长期深耕iOS生态的开发者,我经历过无数次Xcode的"玄学报错"和SwiftUI的"神秘崩溃"。直到遇见Baidu Comate 3.5S,这款专为…...

PvZ Toolkit:植物大战僵尸PC版终极修改工具完全指南

PvZ Toolkit:植物大战僵尸PC版终极修改工具完全指南 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit PvZ Toolkit是一款专为植物大战僵尸一代PC版设计的开源综合修改工具,为玩…...

手机号查询QQ号终极指南:3步实现Python开源工具快速找回账号

手机号查询QQ号终极指南:3步实现Python开源工具快速找回账号 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 当你在数字生活中需要快速找回关联QQ号时,phone2qq这个Python开源工具提供了高效解决方案。通过手…...

EVA-01部署避坑指南:环境配置、模型下载、常见问题一站式解决

EVA-01部署避坑指南:环境配置、模型下载、常见问题一站式解决 1. 引言:从零启动你的初号机 想象一下,你拿到了一台EVA初号机的启动钥匙,但面对复杂的神经连接接口和陌生的操作面板,却不知从何下手。别担心&#xff0…...

SenseVoiceSmall语音识别5分钟快速部署:一键开启多语言情感识别

SenseVoiceSmall语音识别5分钟快速部署:一键开启多语言情感识别 1. 为什么选择SenseVoiceSmall 语音识别技术已经发展多年,但大多数解决方案仅停留在"文字转写"层面。SenseVoiceSmall的创新之处在于,它能理解声音背后的情感和场景…...

RK3588 NPU实战:如何将PC训练的人脸识别模型(ONNX)高效部署到边缘端?

RK3588 NPU实战:从ONNX模型到边缘端高效部署的人脸识别全流程解析 当你在PyTorch或TensorFlow中完成人脸识别模型的训练,导出为ONNX格式的那一刻,真正的挑战才刚刚开始。如何让这个模型在RK3588的NPU上以最佳性能运行?这是每个从云…...

【大模型联邦学习落地实战指南】:SITS2026权威演讲深度拆解,3大行业真实案例+5步部署避坑清单

第一章:SITS2026演讲:大模型联邦学习应用 2026奇点智能技术大会(https://ml-summit.org) 在SITS2026主会场,来自MIT与华为诺亚方舟实验室的联合团队展示了基于LLaMA-3架构的大模型联邦学习新范式——FedLLM。该方案突破传统参数平均&#x…...

【限时解密】2026奇点大会闭门报告:3家头部企业KG-LLM联合训练成本直降67%的4个工程拐点

第一章:2026奇点智能技术大会:大模型知识图谱融合 2026奇点智能技术大会(https://ml-summit.org) 本届大会首次设立“大模型知识图谱”联合实验室展台,聚焦于结构化语义理解与生成式推理的深度耦合。核心突破在于提出动态图嵌入对齐&#x…...

为什么92%的大模型项目在UAT阶段暴雷?揭秘测试用例生成缺失的3个工程化断层与2套已验证CI/CD嵌入方案

第一章:大模型工程化测试用例自动生成 2026奇点智能技术大会(https://ml-summit.org) 大模型工程化落地的核心挑战之一,在于测试覆盖难以随模型迭代速度同步演进。传统手工编写测试用例的方式在面对动态提示(prompt)、多模态输入…...

Windows 11系统性能优化深度解析:Win11Debloat技术架构与部署策略

Windows 11系统性能优化深度解析:Win11Debloat技术架构与部署策略 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declu…...