mysql批量更新

两种常用方式

  1. replace into
replace into test_tbl (id,dr) values (1,'2'),(2,'3'),...(x,'y');
  1. insert into ... on duplicate key update ...
INSERT INTO mysql_sink_test_1 ( id, cnt, max_ts )
VALUES
    ( 'sensor_9', 9, 90000000000 ) 
    ON DUPLICATE KEY UPDATE cnt = 6,
    max_ts = 10000000000;

插入的时候,回先根据主键id 查询是否有重复,有则更新,无则新增.
适合于Spark DataFrame遍历更新mysql操作

具体参考官方文档:
https://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html

replace into 和 insert into on duplicate key update的不同在于:

replace into 操作本质是对重复的记录先delete 后insert,如果更新的字段不全会将缺失的字段置为缺省值,用这个要悠着点否则不小心清空大量数据可不是闹着玩的。
insert into 则是只update重复记录,不会改变其它字段。

参考:https://blog.csdn.net/Michaelwubo/article/details/80930468

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容