将所有值从table1移动到table2(使用1个新列)

时间:2014-03-11 06:50:00

标签: android sqlite

将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

如何解决这个问题,我需要将空值传递给新列。

提前致谢!

2 个答案:

答案 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设置默认值约束,以更好地处理未命中的