云数据仓库ADB INSERT INTO SELECT 主键更新
在ADB MySQL数据库中,如果想要在插入数据时遇到主键重复的情况下更新现有行,可以使用INSERT ON DUPLICATE KEY UPDATE语句。这个语句首先尝试插入新行,但当插入的数据导致主键冲突时,它将转而执行ON DUPLICATE KEY UPDATE部分指定的更新操作,从而更新已有行的指定字段。
例如,如果有一个表student_course,并且你想在user_id重复时更新course_name和business_id,你可以这样写SQL语句:
INSERT INTO student_course (id, user_id, nc_id, ..., business_id)
VALUES(277942, 11056941, ..., 'kuaiji')
ON DUPLICATE KEY UPDATE
course_name = '工业会计实战V9.0--66',
business_id = 'kuaiji';
在这个例子中,如果插入的记录中user_id与表中已有的记录重复,那么这条记录不会被插入,而是会更新该重复记录的course_name和business_id字段。
此回答整理自钉群“云数据仓库ADB-开发者群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云自主研发的云原生数据仓库,具有高并发读写、低峰谷读写、弹性扩展、安全可靠等特性,可支持PB级别数据存储,可广泛应用于BI、机器学习、实时分析、数据挖掘等场景。包含AnalyticDB MySQL版、AnalyticDB PostgreSQL 版。