2011-11-25 6 views
1

안드로이드 애플리케이션의 SQLite 데이터베이스에서 "in place"SQL 쿼리를 실행해야합니다. someOtherColumn =을 aValue는안드로이드 SQLite 데이터베이스에서 "In place"업데이트가 rawQuery와 함께 작동하지 않습니다.

내가 SQLiteDatabase.rawQuery(updateQuery, "someOtherColumn = ?", new String{}[aValue])와이 쿼리를 실행하려고

갱신 테이블 T 세트 열 = 열 + 1하지만 열이 증가되지 않는 것을 발견 : 쿼리의 형식이다. 내가 보통의 SQLiteDatabase.update(...)와 같은 쿼리를 실행하면 잘 작동하지만 이전 쿼리의 값을 가져 와서 외부로 업데이트 한 다음 update()을 실행해야합니다. 그러면 선택이 필요하고 업데이트가 필요하기 때문에 효율성이 떨어집니다.

첫 번째 쿼리를 사용하여 "적절한 위치에"업데이트 할 수있는 방법이 있습니까?

감사합니다.

답변

2

첫 번째 쿼리를 사용하여 "적절한 위치에"업데이트 할 수있는 방법이 있습니까?

이것은 쿼리가 아닙니다. UPDATE 문입니다. 결과 집합을 반환하지 않습니다. execSQL()과 함께 사용하십시오 (rawQuery() 아님).

하지만은이 방법입니다

선별 한 후 업데이 트를 필요로하기 때문에 아마 덜 효율적이다) (업데이 트를 실행 한 후, 기존의 열 값을 가져 외부를 업데이트하고 나를 필요 모든 SQL 데이터베이스가 작동합니다. 이제 저장 프로 시저를 제공하는 사용자가 UPDATESELECT을 한 요청으로 처리 할 수 ​​있지만 여전히UPDATESELECT입니다. 또한 SQLite는 적어도 마지막으로 살펴볼 때 저장 프로 시저를 지원하지 않습니다.

관련 문제