更新非键列查询 Pheonix JDBC
Posted
技术标签:
【中文标题】更新非键列查询 Pheonix JDBC【英文标题】:Update Non key columns Query 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”。
【问题讨论】:
【参考方案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 = '...';
(我不知道 '...' 需要什么值。)
【讨论】:
以上是关于更新非键列查询 Pheonix JDBC的主要内容,如果未能解决你的问题,请参考以下文章