2016-05-06 7 views
-3

を取得するので、私はONUPGRADEの変更データベースには、私は、既存のテーブル内の1つの列を追加したいクラッシュ

 @Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    String addMeasureJsonQuery = "ALTER TABLE " + SqlCard.TOOTEET_TABLE + " ADD COLUMN " + Columns.Tooteet.MEASURE_JSON + " TEXT"; 
    if (oldVersion == 1 && newVersion == 2){ 
     db.execSQL(addMeasureJsonQuery); 
    } 

で以下のクエリはまた2として、データベースのバージョンを更新しました。しかし私のアプリは、以下のエラー

でクラッシュします書きました

致命的な例外:スレッド1516プロセス:mypackagenameの、PID:2117

android.database.sqlite.SQLiteException周辺 "作成":構文エラー (コード1)、compilinながらG:NOTは tooteets(IDテキスト、テキストTEXT、file_url_1 TEXT、file_url_2 TEXT、 thumb_url_1 TEXT、thumb_url_2 TEXT、カラーTEXT、local_parent_folder TEXT、unique_file_name TEXT、unique_thumbnail_name TEXT、キーワード TEXT、created_user_nameのTEXTを存在する場合のCREATE TABLE ALTER TABLEを、updated_user_nameテキスト、is_favorite 整数デフォルト0、is_tooti_author INTEGER DEFAULT 1、tweet_type INTEGER、評価整数DEFAULT 0、weather_type INTEGER DEFAULT 0、 緯度DOUBLE DEFAULT 0.0、経度DOUBLE DEFAULT 0.0、group_key TEXT、tweet_date INTEGER、group_sort_orderのINTEGER、 no_of_unread_tooteets INTEGER DEFAULT 0、no_of_comments INTEGER DEFAULT 0、no_of_unread_comments INTEGER DEFAULT 0、lane_ IDテキスト、 lane_nameテキスト、expense_jsonテキスト、is_synced整数デフォルト0、 is_update整数デフォルト0、is_deleted整数デフォルト0)ADD COLUMN measure_jsonのTEXT

android.database.sqlite.SQLiteConnection.nativePrepareStatement(ネイティブ 方法で) で

android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1113)

android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.jでAVA:690) android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588で

)android.database.sqlite.SQLiteProgramで

(SQLiteProgram.java:58)

でandroid.database.sqlite.SQLiteStatement。(SQLiteStatement.java:31)

android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1806)で

android.database.sqlite.SQLiteDatabase.execSQL MyPackageName.database.DBSQLite.onUpgradeで(SQLiteDatabase.java:1737)

(DBSQLite.java:80)で

android.database.sqlite.SQLiteOpenHelperで.getDatabaseLocked(SQLiteOpenHelper.java:257)MyPackageName.database.DBSQLite.getDatabaseで android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)

(DBSQLiteで

。Javaの:56 MyPackageName.MyApplicationClass $ 1.runで)

java.lang.Thread.runで(MyApplicationClass.java:68)

(Thread.java:841)

でしたあなたはしてくださいこの問題を解決するアイディアを教えてください。事前のおかげで...

+3

誤ったコマンドを実行していないと、アップグレード時にエラーが発生する理由がありません。これは新しい機能を追加します。 –

+0

テーブルが存在しない場合は、テーブルを変更しますか? – Pooya

答えて

2

あなたが直接代わりに近くこれだけあなたが取得している例外のSqlCard.TOOTEET_TABLE .Becauseのテーブル名(tooteets)を提供しなければならない

あなたは私が使用し、次のコードを使用することができ、「CREATE」。

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

    // If you need to add a column 
    if (newVersion > oldVersion) { 
     db.execSQL("ALTER TABLE tooteets ADD COLUMN measure_json TEXT"); 
    } 
} 
+0

それは私のために働く。ありがとう@ Punitha Priya – Sangeetha

関連する問題