【问题标题】:DolphinDB: Check if a value already exists before updating dataDolphinDB:在更新数据之前检查一个值是否已经存在
【发布时间】:2022-01-09 17:17:22
【问题描述】:

我正在尝试将新的内存表导入分布式表。我的目的是如果一个值已经存在就更新记录,如果它不存在就写入它。我可以用什么来实现它?

【问题讨论】:

    标签: in-memory-database dolphindb


    【解决方案1】:

    这可以使用函数 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时的x值,加上了ID=5时的x值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-22
      • 2012-05-13
      • 1970-01-01
      • 2015-04-19
      • 2020-02-04
      • 2015-07-12
      相关资源
      最近更新 更多