2016-12-19 9 views
0

아파치 피닉스에서 값을 업데이트하는 데 문제가 있습니다. 아래 쿼리에서 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에 "의 기본 키는"서버 이름 "과"StationName "의 조합이다" ". 나는 'TestProduct'에서 'sampleProduct'에서 제품 컬럼의 값을 업데이트하고 싶습니다."

당신은 내가 적절한 것으로 UPSERT 표시되지 않는 행이 존재하지 않을 경우 삽입 "에 대해 아무 말도하지 않기 때문에. MySQL의 코드는

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

이다 (I 값이 필요 모르겠어요 for ... ')