2012-12-27 2 views
0

이 SQL 쿼리가 있습니다업데이트하려고하면 Sqlite가 바뀌어

bd.replace (TABLE, null, cv);

여기서 cv는 {_id = 1, column1 = x, column3 = z}입니다. // 아무 2 열 표는 다음과 방식이

이없는주의 :

_id (기본 키가) | column1 (TEXT로) | column2 (TEXT로) | (_id = 1, column1 = a, column2 = b, column3 = c) 그래서 내가 쿼리를 실행 한 후 _id = 1 레지스터를 이미 실행하고 있는데 쿼리를 실행하기 전에 column3 (TEXT로)

그 (_id = 1, column1 = x, column2 = null, column3 = z) 왜 column2를 b로 유지하지 않았습니까?

¿ 누구나 이전에이 값을 유지하는 방법을 알고 있습니까?

중요 : 존재하지 않는 경우를 대비하여 새 행을 삽입해야하므로 교체해야합니다. 사전에

감사

답변

0

해결책 :

세드릭 내가 알고. 사람이 더 나은 뭔가를 알고있는 경우

long id=bd.insert(TABLE, null,cv); 
if(id==-1) { 
    int idrow=(Integer) cv.get("_id"); 
    cv.remove("_id"); 
    bd.update(TABLE,cv,"_id=?",new String[]{String.valueOf(idrow)}); 
} 

: 나는 null에 동일한 2 열 얻었다 때문에 당신이 행을 업데이트 SQLite는 문서에 따르면

먼저 내가 또한 주변이 거리에있어

행을 삭제 ,이 게시물을 재생하십시오.

고맙습니다

관련 문제