我正在將table1中的所有記錄(備份)複製到同一個數據庫中的table2。這是我第一個數據庫應用程序。將表1中的記錄複製到表2時出錯。sqlite約束異常錯誤代碼19約束失敗
下面是表1中的結構:
private static final String CREATE_SELECTED_CAND_TABLE = " CREATE TABLE if not exists "
+ TABLE_SELECTED_CAND
+ "("
+ KEY_ID
+ " integer PRIMARY KEY autoincrement,"
+ KEY_NAME1
+ " TEXT,"
+ KEY_NAME2
+ " TEXT,"
+ KEY_NAME3
+ " TEXT,"
+ KEY_NAME4
+ " TEXT," + KEY_NAME5 + " TEXT" + ")";
表2結構:
private static final String CREATE_SELECTED_CAND_RECOUNT1 = " CREATE TABLE if not exists "
+ TABLE_RECOUNT1
+ "("
+ KEY_ID
+ " integer PRIMARY KEY autoincrement,"
+ KEY_NAME1
+ " TEXT,"
+ KEY_NAME2
+ " TEXT,"
+ KEY_NAME3
+ " TEXT,"
+ KEY_NAME4
+ " TEXT," + KEY_NAME5 + " TEXT" + ")";
,我複製這樣的:
mDb.execSQL(" INSERT INTO " + TABLE_RECOUNT1 + " SELECT * FROM "
+ TABLE_SELECTED_CAND);
現在的問題是,它僅在所有列不爲空的情況下複製我有一些列爲空,但我也想複製它們。我如何實現這一目標?任何幫助將是非常可觀的..!
這些是棧跟蹤:
E/AndroidRuntime(30294): android.database.sqlite.SQLiteConstraintException:錯誤代碼19: 約束失敗
E/AndroidRuntime(30294):在Android.database.sqlite.SQLiteStatement.native_execute(Native Method)
E/AndroidRuntime(30294):at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:92)
E/AndroidRuntime(30294):at android.databa se.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:2028)
E/AndroidRuntime(30294):在android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1968)
E/AndroidRuntime(30294):在E/AndroidRuntime(30294):at com.dana.votecount.VoteRecount.fetchAllFromRecount1(VoteRecount.java:161)E/AndroidRuntime(30294):at在com.dana.votecount.VoteRecount.fetchAllFromRecount1(VoteRecount.java:161)E/AndroidRuntime com.dana.votecount.VoteRecount.access $ 1(VoteRecount.java:158)
E/AndroidRuntime(30294):在com.dana.votecount.VoteRecount $ 2 $ 1.onClick(VoteRecount.java:107)
請問您能否顯示錶結構的導出,以便我們可以看到約束條件? – Nitroware