https://code.kx.com/q/wp/capi/#publishing-to-a-kdb-tickerplant
方案:
trade:([]
time:`timespan$();
sym:`symbol$();
price:`float$();
size:`long$()`
)
示例tickerplant发布者代码:
K singleRow= knk(3, ks((S) "ABC"), kf(10.0), kj(20));
// Perform single row upsert, tickerplant will add timestamp column itself
result= k(handle, ".u.upd", ks((S) "trade"), singleRow, (K)0);
现在,让我们假设这个表是按sym列设置键的.现在,当我执行这个函数时,它调用upsert,但我需要的是在upsert功能之上(如果键不存在则插入,如果键存在则更新),我还需要的是在upsert过程中只指定某些列,这意味着在upsert过程中,如果键存在,它只更新指定的列,而其他列保持不变.我可以在C代码中修改它吗?
例如,伪代码:
K singleRow= knk(3, ks((S) "ABC"), kj(20));
// Perform single row upsert, tickerplant will add timestamp column itself
result= k(handle, ".u.upd", ks((S) "trade"), singleRow, (K)0);
正如您所看到的,我只指定了SIZE列值,所以我希望做的是,如果键存在(在本例中是ABC),那么它只更新SIZE列,因为我没有指定PRICE列,所以它应该与之前的值相同.