2013-12-14 3 views
4

내 앱의 sqlite 데이터베이스에서 테이블의 이름을 바꾸려고합니다. oldName 테이블의 옛 이름입니다sqlite의 테이블 이름 바꾸기

ourDatabase.rawQuery("ALTER TABLE " + oldName + " RENAME TO " + newName, 
       null); 

newName 테이블의 새 이름입니다 ourDatabaseSQLiteDatabase의 인스턴스이다 : 그것을 위해 나는 다음과 같은 명령을 사용하고 있습니다. 그러나 이것은 효과가 없습니다.

무엇이 실수입니까?

감사합니다.

+0

을, 그것은 3.0 만 –

+0

공식 문서에서 작동 말한다 버전 3.4과 안드로이드 선박 .0. 그래서 어떤 경우에는 3.4보다 큰 sqlite 버전 위의 코드가 작동할까요? – Rajat

+0

그래, 작동한다면,이 쿼리를 실행하는 동안 충돌이나 오류 코드가 있습니까? 성공적으로 실행 되었습니까? –

답변

10

이 시도 :

ALTER TABLE orig_table_name RENAME TO tmp_table_name; 
+1

질문 내 질문과 다른 점은 무엇입니까? –

+0

주어진 쿼리에 하나의 추가 매개 변수 null이 있습니다. –

+2

Android rawQuery 메서드의 null 매개 변수가 이유가 있습니다. 나는 당신의 SQL 쿼리와 그의 쿼리의 차이점을 언급했다. 어느 쪽이 같습니까. 그의 질문에 대한 실제 대답은 대신 execSql 메소드를 사용하는 것입니다. –

6

이 코드보십시오 : 당신이 당신의 버전을 업데이트, 사용하는 버전

db.beginTransaction(); 
    try{ 
     db.execSQL("ALTER TABLE " + oldName + " RENAME TO " + newName+";"); 
     db.setTransactionSuccessful(); 
    } finally{ 
     db.endTransaction(); 
    } 
관련 문제