MySQL的on duplicate key update 的使用

MySQL的INSERTINTO语句结合ONDUPLICATEKEYUPDATE可实现数据存在时更新、不存在时插入的功能。它会检查添加的行是否与主键或唯一索引冲突,若有冲突,则更新指定字段;否则执行插入操作。唯一索引的值也可被修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

含义是:

mysql中的存在这条数据就就更新,不存在就插入新增,,通过主键索引区分

INSERT INTO t_name ( c1, c2, c3 )
VALUES
	( 1, '1', '1') 
	ON DUPLICATE KEY UPDATE
	c2 = '2';
 insert into gha_tm_mid_course_user(OPER,OPTIME,UPDATOR,UPDATETIME,DEPT_ID,TRAINING_ID,COURSE_ID,USER_ID,IS_SELF_STUDY,IS_TRAINING,SELF_COURSE_STATE,TRAINING_COURSE_STATE,HOURS,SCORE)
        values (#{oper},#{optime},#{updator},#{updatetime},#{deptId},#{trainingId},#{courseId},#{userId},#{isSelfStudy},#{isTraining},#{selfCourseState},#{trainingCourseState},#{hours},#{score})
        on duplicate key update HOURS = values(HOURS), SCORE = values(SCORE), TRAINING_COURSE_STATE = values(TRAINING_COURSE_STATE),SELF_COURSE_STATE = values(SELF_COURSE_STATE),IS_TRAINING = values(IS_TRAINING),
        IS_SELF_STUDY = values(IS_SELF_STUDY), UPDATOR = values(UPDATOR), UPDATETIME = values(UPDATETIME)

总结:

1、mysql的存在就更新不存在就插入可由on duplicate key update语法实现;

2、不过只会检查添加列中有没有匹配到主键id和唯一索引的重复项;

3、如果有重复项会在on duplicate key update后进行修改指定的字段和内容;

4、所涉及的唯一索引也是可以修改的;
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值