首页 > 技术文章 > Mysql插入数据主键重复时怎么搞?

Eliphaz 2020-06-30 15:57 原文

如果插入数据主键重复或数据已经存在,显然需要更新这条数据

一、大家在做数据库相关操作的时候,应该经常会遇到当一条数据不存在的时候,插入这条数据。但是如果这条数据的主键已经在,并且数据已经填充好时,那么怎么才能更新这条数据呢?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)

推荐阅读