2016-12-19 9 views
0

У меня проблема с обновлением значений в apache phoenix. Следующий запрос вызывает исключение JDBC. Я новичок в Pheonix JDBC и путаюсь с использованием запросов upsert для обновления значений полей не первичного ключа.Обновление Не ключевые столбцы Запрос Pheonix JDBC

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

Первичный ключ "MyTable" является сочетание "ServerName" и "StationName". Я хотел бы обновить значение столбца продукта от «sampleProduct» до «TestProduct».

ответ

0

Обновите запрос sql следующей строкой. Надеюсь, это поможет.

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

Не 'UPSERT' действительно' INSERT ... ON DUPLICATE KEY UPDATE ... '? –

+0

UPSERT не находится в mysql –

0

«Первичный ключ„MyTable“является сочетание„ServerName“и„StationName“. Я хотел бы обновить значение столбца продукта от„sampleProduct“до„TestProduct“.»

Вы ничего не говорят о «вставляя, если строка не существует, так что я не вижу UPSERT как это необходимо. Код MySQL является

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

(я не знаю, какие ценности необходимы for '...'.)