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)