这个可以使用upsert!函数,具体如下:
首先建立分布式数据库,并第一次写入数据
if (existsDatabase("dfs://rangedb128"))
{
dropDatabase("dfs://rangedb128")
}
db=database("dfs://rangedb128", VALUE, 0..10)
ID=0 1 2 2
x=0.1*0..3
t=table(ID, x)
pt=db.createPartitionedTable(t, `pt, `ID)
pt.append!(t)
select * from pt
结果如下:
ID x
0 0
1 0.1
2 0.2
2 0.3
第二次写入数据,并查看结果
t1=table([1,5] as ID, [111,555] as x)
upsert!(pt, t1, keyColNames=`ID)
select * from pt;
结果如下
ID x
0 0
1 111
2 0.2
2 0.3
5 555
可以发现ID为1的值更新了,ID为5的值新增了。