Mysql插入数据主键重复时怎么搞?
如果插入数据主键重复或数据已经存在,显然需要更新这条数据
一、大家在做数据库相关操作的时候,应该经常会遇到当一条数据不存在的时候,插入这条数据。但是如果这条数据的主键已经在,并且数据已经填充好时,那么怎么才能更新这条数据呢?xiao
可能大部分人第一时间想到是先插入,然后判断主键是否存在,不存在就插入,存在就执行
更新语句,这种做法是最容易想到的,也算对,但是弊端很大,首先你需要写两条sql语句,这样
的话就需要两次连接数据库服务器,然后利用高级语言来判断是否存在的逻辑。显然效率很低!那么
有什么一劳永逸的好方法呢?
下面教你一条SQL语句,教你解决这类问题!
sql = "insert into douyin (user_name,user_id,profile,prasied_number,focus_number,fans_number,avatar,work_image) values (%s,%s,%s,%s,%s,%s,%s,%s)
ON DUPLICATE KEY UPDATE user_name='$user_name',profile='$profile',prasied_number='$prasied_number',focus_number='$focus_number',fans_number='$fams_number',avatar='$avatar',work_image='$work_image'"
ON DUPLICATE KEY UPDATE(当出现DUPLICATE KEY主键重复错误的时候触发Update操作,当然要求就是表在设计的时候一定要有主键primary key)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~