2016-08-02 1 views
1

이 경우에는 상태 F 인 문서를 파일 이름과 함께 테이블 LOGS에 저장해야합니다.for 루프를 기반으로 데이터베이스에서 동일한 레코드 업데이트

다음과 같은 표현이 있어야 내 테이블

:

ID: 1 
FILE:test 
ERROR: id:5,id:9,id:10 

: 같은 상태를 갖는 동일한 파일 내에서

ID: Incremented 
FILE: fileNameWithOutExt (name of the file) 
ERROR: errorCode 

그러나 모든 문서가 필요는 그래서 동일한 레코드에 삽입되는 내 if 상태 문이 XML 파일의 모든 자식을 전달하는 for 루프 내에 있습니다. 상태가 F 인 레코드는 동일한 레코드 내에서 연결되어야합니다.

if(status.equals("F")){ 
    elemValue = element.getChild("id").getValue(); 
    String fileNameWithExt = f.getName(); 
    String fileNameWithOutExt = FilenameUtils.removeExtension(fileNameWithExt); 
    saveLogs(fileNameWithOutExt, elemValue); 
} 

private void saveLogs(String fileNameWithOutExt, String elemValue){ 
    String errorCode = "id:"+ elemValue; 
    String query = "INSERT INTO LOGS (FILE,ERROR)VALUES ('"+fileNameWithOutExt+"','"+errorCode+"')"; 
    String content = ""; 
    content = SqlTool.selectOneString("DB", query); 
} 

답변

0

삽입 명령으로 만 업데이트 할 수 없습니다. 업데이트 지침을 확인하고 간단한 방법은 다음과 같은 SQL 스크립트를 사용하는 것입니다.

UPDATE MyTable SET [email protected] WHERE [email protected] 

IF @@ROWCOUNT = 0 
    INSERT INTO MyTable (FieldA) VALUES (@FieldA) 
관련 문제