请问一下,往hologres里面upsert数据。上游业务库的变更是多条数据变更在一个事物里面。hologres支持一批事物的数据写入嘛?
Hologres支持UPSERT操作,即在插入数据时如果主键存在重复的行数据,则对该数据执行更新或跳过操作。具体的语法格式是:INSERT INTO [ AS ] [ ( [, ...] ) ] VALUES ... ON CONFLICT DO UPDATE SET [, ...] [WHERE ];。
Hologres目前仅支持DDL的显式事务,并不支持单纯的DML事务,也不支持DDL和DML混合的事务。这意味着,尽管语法上可以通过多个DML语句组成的事务,但实际并不支持原子提交和回滚。因此,如果您的业务库在一个事物中有多个数据变更,那么这些变更不能保证全部成功或者全部失败,可能存在部分成功部分失败的情况。
本文为您介绍在Hologres中INSERT ON CONFLICT语句的用法。https://help.aliyun.com/zh/hologres/user-guide/insert-on-conflict?spm=a2c4g.11186623.0.i61
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
本技术圈将为大家分析有关阿里云产品Hologres的最新产品动态、技术解读等,也欢迎大家加入钉钉群--实时数仓Hologres交流群32314975