2013-05-15 11 views
8

मैं अपने DB करने के लिए "MEDIA_TABLE" कहा जाता है तालिका जोड़ा गया है और मैं निम्न त्रुटि कोड मिल गया:SQLiteException: तालिका पहले से मौजूद है

05-15 20:56:22.976: E/AndroidRuntime(5968): android.database.sqlite.SQLiteException: table personal_stats already exists (code 1): , while compiling: CREATE TABLE personal_stats (_id INTEGER PRIMARY KEY AUTOINCREMENT, pictures TEXT, videos TEXT); 

मेरी दूसरी तालिका ठीक काम करता है।

मैंने अपने ऐप को अनइंस्टॉल करने और इसे इंस्टॉल करने का प्रयास किया और यह काम नहीं करेगा, शायद डीबी में टेबल की एक सीमा है?

@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL("CREATE TABLE " + TABLE_NAME + " (" + 
      COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
      COLUMN_DATE + " TEXT, " + 
      COLUMN_EXERCISE + " TEXT, " + 
      COLUMN_WEIGHT + " TEXT, " + 
      COLUMN_REPS + " TEXT, " + 
      COLUMN_SET_TIME + " TEXT, " + 
      COLUMN_WORKOUT_TIME + " TEXT, " + 
      COLUMN_DISTANCE + " TEXT, " + 
      COLUMN_SPEED + " TEXT, " + 
      COLUMN_REST_TIME + " TEXT, " + 
      COLUMN_NUMBER_OF_SETS + " TEXT, " + 
      COLUMN_FIELDS_PARAMETER + " TEXT, " + 
      COLUMN_NOT_ON_LIST_EXERCISE + " TEXT, " + 
      COLUMN_HERAT_BEAT + " TEXT, " + 
      COLUMN_CALORIES + " TEXT, " + 
      COLUMN_COMMENT + " TEXT);"); 

    db.execSQL("CREATE TABLE " + SECOND_TABLE_NAME + " (" + 
      COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
      COLUMN_AGE + " TEXT, " + 
      COLUMN_AGE_PW + " TEXT, " + 
      COLUMN_GENDER + " TEXT, " + 
      COLUMN_HEIGHT + " TEXT, " + 
      COLUMN_HEIGHT_PW + " TEXT, " + 
      COLUMN_BODY_WEIGHT + " TEXT, " + 
      COLUMN_BODY_WEIGHT_PW + " TEXT, " + 
      COLUMN_PROFILE_PIC + " TEXT, " + 
      COLUMN_FAT + " TEXT, " + 
      COLUMN_FAT_PW + " TEXT);"); 

    db.execSQL("CREATE TABLE " + MEDIA_TABLE + " (" + 
      COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
      COLUMN_PICS + " TEXT, " + 
      COLUMN_VIDEO + " TEXT);"); 

}  

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); 
    db.execSQL("DROP TABLE IF EXISTS " + SECOND_TABLE_NAME); 
    db.execSQL("DROP TABLE IF EXISTS " + MEDIA_TABLE); 
    onCreate(db); 
} 

EDIT : 
@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    db.execSQL("CREATE TABLE IF NOT EXISTS" + TABLE_NAME); 
    db.execSQL("CREATE TABLE IF NOT EXISTS" + SECOND_TABLE_NAME); 
    db.execSQL("CREATE TABLE IF NOT EXISTS" + MEDIA_TABLE); 
    onCreate(db); 
} 

उत्तर

33

आप CREATE TABLE IF NOT EXISTS बजाय CREATE TABLE उपयोग करना चाहिए:

यहाँ मेरी onCreate कोड है। आपका कोड तो इस प्रकार दिखाई देगा: इस तरह से

@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL("CREATE TABLE IF NOT EXISTS" + TABLE_NAME + " (" + 
      COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
      COLUMN_DATE + " TEXT, " + 
      COLUMN_EXERCISE + " TEXT, " + 
      COLUMN_WEIGHT + " TEXT, " + 
      COLUMN_REPS + " TEXT, " + 
      COLUMN_SET_TIME + " TEXT, " + 
      COLUMN_WORKOUT_TIME + " TEXT, " + 
      COLUMN_DISTANCE + " TEXT, " + 
      COLUMN_SPEED + " TEXT, " + 
      COLUMN_REST_TIME + " TEXT, " + 
      COLUMN_NUMBER_OF_SETS + " TEXT, " + 
      COLUMN_FIELDS_PARAMETER + " TEXT, " + 
      COLUMN_NOT_ON_LIST_EXERCISE + " TEXT, " + 
      COLUMN_HERAT_BEAT + " TEXT, " + 
      COLUMN_CALORIES + " TEXT, " + 
      COLUMN_COMMENT + " TEXT);"); 

    db.execSQL("CREATE TABLE IF NOT EXISTS" + SECOND_TABLE_NAME + " (" + 
      COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
      COLUMN_AGE + " TEXT, " + 
      COLUMN_AGE_PW + " TEXT, " + 
      COLUMN_GENDER + " TEXT, " + 
      COLUMN_HEIGHT + " TEXT, " + 
      COLUMN_HEIGHT_PW + " TEXT, " + 
      COLUMN_BODY_WEIGHT + " TEXT, " + 
      COLUMN_BODY_WEIGHT_PW + " TEXT, " + 
      COLUMN_PROFILE_PIC + " TEXT, " + 
      COLUMN_FAT + " TEXT, " + 
      COLUMN_FAT_PW + " TEXT);"); 

    db.execSQL("CREATE TABLE IF NOT EXISTS" + MEDIA_TABLE + " (" + 
      COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
      COLUMN_PICS + " TEXT, " + 
      COLUMN_VIDEO + " TEXT);"); 

}  

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); 
    db.execSQL("DROP TABLE IF EXISTS " + SECOND_TABLE_NAME); 
    db.execSQL("DROP TABLE IF EXISTS " + MEDIA_TABLE); 
    onCreate(db); 
} 
+0

काम नहीं किया = \ – tomer

+0

आपको इस तरह के सभी निर्माण विवरणों को बदलना चाहिए। – Triode

+0

मैंने किया। मेरी पोस्ट संपादित करें देखें। – tomer

1

उपयोग

db.execSQL("create table if not exists table_name(rank int, correct_answer int, optionselect int);"; 
+0

काम नहीं किया = \ – tomer

0

आप एक ही कार्यक्रम फिर से और फिर से चल रहे हैं और एक ही मेज डेटाबेस में मौजूद है। आपको अपनी तालिका तालिका क्वेरी को संशोधित करने की आवश्यकता है। इसे आज़माएं "तालिका मौजूद नहीं है यदि TABLE_NAME मौजूद नहीं है"

+0

काम नहीं किया = \ – tomer

संबंधित मुद्दे