是否可以使用“过程”在MemSQL Pipeline中使用类似Upsert / Merge的功能。
我尝试在此过程中使用ON DUPLICATE KEY UPDATE
,但是我的管道失败,并显示错误Feature 'INSERT ... ON DUPLICATE KEY UPDATE for columnar tables' is not supported by MemSQL.
让我知道是否需要更多信息。
谢谢, 桑索什
答案 0 :(得分:1)
我曾与MemSQL支持人员交谈过,这就是他们所说的。
要获得成功,唯一的方法是手动编写逻辑,以便在检测到重复键时先删除记录,然后再插入新记录。
如果本地计算机中有文件,则可以使用https://docs.memsql.com/sql-reference/v6.8/load-data/。这样就可以处理upserts。
答案 1 :(得分:1)
MemSQL不支持列表上的唯一索引。来自https://docs.memsql.com/concepts/v6.8/columnstore/
请注意,您只能有一个CLUSTERED COLUMNSTORE键和SHARD KEY。除了仅元数据的非强制唯一键之外,您不能将任何其他键(包括PRIMARY KEY)添加到列存储表中。
如果将表从列存储更改为行存储是可行的,则可以创建唯一索引。
答案 2 :(得分:0)
MemSQL 7.1确实支持唯一约束,您只能在一列上进行定义。除了列存储索引本身之外,您还可以添加多个HASH类型的索引。
MemSQL 7.3将支持UPSERT。