【发布时间】:2017-11-14 22:00:09
【问题描述】:
我想使用 Cassandra COPY 功能更新表中的某些列。但是即使没有找到行,Copy 也会插入新记录。我想在 COPY 命令中进行限制,只有在找到 PRIMARY KEY 行时才能更新 csv 文件中的列。下面共享示例表和 COPY 命令。
CREATE TABLE Orders(
Ord_Id Text Primary Key,
Ord_Date Int,
Ord_Acct Text,
Ord_Comp_Dt Int,
Ord_Status Text)
Sample Data:
Ord_Id | Ord_Date | Ord_Acct | Ord_Comp_Dt | Ord_Status
ORD001 | 20170602 | A001 | 20170615 | InProgress
ORD002 | 20170603 | A002 | 20170607 | Failed
ORD003 | 20170604 | A003 | 20170616 | InProgress
ORD004 | 20170605 | A003 | 20170617 | InProgress
当使用 Initial Ord_Status='InProgress' 下订单时,上表获取行条目。基于订单完成网络提供带有 Ord_Id、Ord_Status 的数据。
Network Data
ORD_ID,ORD_STATUS
ORD001,Failed
ORD003,Success
ORD004,Rejected
ORD005,DataIncomplete
下面提供了复制命令
COPY ord_schema.Orders(Ord_Id,Ord_Status) FROM 'NW170610.csv'
执行 COPY 命令后的表格快照
Sample Data:
Ord_Id | Ord_Date | Ord_Acct | Ord_Comp_Dt | Ord_Status
ORD001 | 20170602 | A001 | 20170615 | Failed
ORD002 | 20170603 | A002 | 20170607 | Failed
ORD003 | 20170604 | A003 | 20170616 | InProgress
ORD004 | 20170605 | A003 | 20170617 | Rejected
ORD005 | Null | Null | Null | DataIncomplete
未找到主键时不应插入 ORD005。 请协助在插入之前检查数据是否存在或在数据不存在时阻止输入。
【问题讨论】: