【问题标题】:Update Non key columns Query Pheonix JDBC更新非键列查询 Pheonix JDBC
【发布时间】:2016-12-19 19:34:32
【问题描述】:

我在更新 apache phoenix 中的值时遇到问题。以下查询引发 JDBC 异常。我是 Pheonix JDBC 的新手,对更新非主键字段值的 upsert 查询用法感到困惑。

String sql = UPSERT INTO mytable (serverName,SationName, product) SELECT serverName,stationName ‘sampleProduct’ FROM mytable WHERE product = ‘sampleProduct’;   

“myTable”的主键是“serverName”和“StationName”的组合。我想将产品列的值从“sampleProduct”更新为“TestProduct”。

【问题讨论】:

    标签: mysql hadoop hbase phoenix bigdata


    【解决方案1】:

    使用以下行更新 sql 查询。希望它会有所帮助。

    String sql = "REPLACE INTO mytable (serverName,SationName, product)
             SELECT serverName,stationName , 'sampleProduct'
                FROM mytable WHERE product = 'sampleProduct'";   
    

    【讨论】:

    • UPSERT真的不是INSERT ... ON DUPLICATE KEY UPDATE...吗?
    • UPSERT 不在 mysql 中
    【解决方案2】:

    ““myTable”的主键是“serverName”和“StationName”的组合。我想将产品列的值从“sampleProduct”更新为“TestProduct”。”

    您没有说“如果该行不存在则插入,所以我认为UPSERT 不合适。MySQL 代码是

    UPDATE myTable
        SET product = 'sampleProduct'
        WHERE serverName = '...'
          AND sampleProduct = '...';
    

    (我不知道 '...' 需要什么值。)

    【讨论】:

      猜你喜欢
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-04
      • 2019-11-09
      • 2018-09-22
      • 1970-01-01
      • 2019-02-20
      相关资源
      最近更新 更多