2017-10-08 2 views
-1

jdbc에서 INSERT ... ON DUPLICATE KEY 문을 실행하려고하는데 이유에 대한 오류 메시지없이 실패합니다. Script.sql에서 개별적으로 명령문을 실행하더라도 작동하지 않습니다. 여기에 내가 실행하는 데 노력하고있어 성명 :MySQL : ON DUPLICATE KEY 문이 JDBC에서 실패 함

INSERT INTO ptable(username, p, roll, joined) 
      VALUES ('username', 0, 0, 1) 
      ON DUPLICATE KEY UPDATE joined=VALUES(1); 

기본적으로, 난 단지 사용자 이름이 존재하지 않는 경우 새 행을 삽입 할을하고 다음 않는 경우 나는 그들의 행에 조인 된 열을 변경하려면 1. 내 사용자 이름 열은 기본 키와 고유 키 모두로 설정됩니다.

+0

당신이 테이블 구조를 게시 할 수있는 해당 설명서를 확인

INSERT INTO ptable(username, p, roll, joined) VALUES ('username', 0, 0, 1) ON DUPLICATE KEY UPDATE joined = 1; 

대한 추가 정보를 원하시면 : 난 당신이 뭔가를 시도 할 필요가 있다고 생각? '합류 '란 무엇입니까? 그것은 열 이름입니까? – Ravi

+0

mysql 및 sql-server를 사용하여 질문하는 이유는 무엇입니까 ?? 이 문제에 직면 한 데이터베이스 하나만으로 질문을 업데이트 할 수 있습니까? –

+1

[documentation] (https://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html)에 따르면), 'joined = 1'이어야합니다. – AKSW

답변

2

values(col_name) 함수는 ON DUPLICATE KEYS과 함께 사용할 때 열 이름을 인수로 받아들이고 정수를 전달합니다. dev.mysql.com/doc

+0

예. 'VALUES (1)'은 존재하지 않는'1' 칼럼의 값을 의미합니다. '1'은 하나의 값을 의미합니다. – tadman

+0

또는 'VALUES (조인 됨)' – shmosel

관련 문제