同じデータベース内のtable1からtable2にすべてのレコード(バックアップ)をコピーしています。これは私の最初のデータベースアプリケーションです。
表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);
問題は、すべての列がnullでない場合にのみ コピーすることです。いくつかの列をnullとして持っていますが、それらもコピーしたいと思います。どうすればこれを達成できますか?どんな助けでも非常に高く評価されるでしょう..!
これらはスタックトレースです:
E / AndroidRuntime(30294):android.database.sqlite.SQLiteConstraintException:エラーコード19:制約に失敗し
ました E / AndroidRuntime(30294):android.database.sqlite.SQLiteStatement.native_execute(ネイティブメソッド)
E / AndroidRuntime(30294):でandroid.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:92)
E / AndroidRuntime(30294):android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:2028)
E / AndroidRuntime(30294):android。 database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1968)
E / AndroidRuntime(30294):com.dana.db.SelectedCandidatesDB.copyToRecount1(SelectedCandidatesDB.java:257)
E / AndroidRuntime(30294):com.dana.votecount.VoteRecount.fetchAllFromRecount1(VoteRecount.java:161)でE / AndroidRuntime(30294):com.dana.votecount.VoteRecount.access $ 1(VoteRecount.java:158)で
E /AndroidRuntime(30294):com.dana.votecount.VoteRecount $ 2 $ 1.onClick(VoteRecount.java:107)