MemSQL管道中的Upsert / Merge

时间:2019-06-04 23:27:31

标签: memsql

是否可以使用“过程”在MemSQL Pipeline中使用类似Upsert / Merge的功能。

我尝试在此过程中使用ON DUPLICATE KEY UPDATE,但是我的管道失败,并显示错误Feature 'INSERT ... ON DUPLICATE KEY UPDATE for columnar tables' is not supported by MemSQL.

让我知道是否需要更多信息。

谢谢, 桑索什

3 个答案:

答案 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。