将alll值从 Table1 复制到 Table2 。
注意:在表2中,我在最后一个位置添加了一列。
表1 有16列
表2 有17列。
我使用了以下查询:
String s = "INSERT INTO customer_profile_details SELECT * FROM customer_profile";
db.execSQL(s);
它抛出异常:
03-11 06:34:46.383: E/Copy table(24750): Failed to copy table
android.database.sqlite.SQLiteException: table customer_profile_details has 17 columns but 16 values were supplied (code 1): , while compiling: INSERT INTO customer_profile_details SELECT * FROM customer_profile
如何解决这个问题,我需要将空值传递给新列。
提前致谢!
答案 0 :(得分:2)
试试这个:
String s = "INSERT INTO customer_profile_details SELECT cp.*, null FROM customer_profile cp";
db.execSQL(s);
答案 1 :(得分:0)
INSERT INTO customer_profile_details(COL1,COL2,COL3,COL4 ... CoL17) SELECT COL1,COL2,COL3,... Col16,“17列的常量有效默认值,如果允许则为null” FROM customer_profile;
最好在表结构本身中为列17设置默认值约束,以更好地处理未命中的