【发布时间】:2020-12-24 10:28:59
【问题描述】:
我正在尝试将数据从一个表复制到另一个表。请找到以下代码:
//Dummy table for reference
database.execSQL("CREATE TABLE IF NOT EXISTS `New_Temp1` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `data1` TEXT DEFAULT '', `data2` INTEGER NOT NULL, `data3` TEXT DEFAULT '', `data4` TEXT DEFAULT '', `data5` TEXT DEFAULT '')");
database.execSQL("INSERT INTO New_Temp1 SELECT * FROM Temp1");
database.execSQL("DROP TABLE Temp1");
database.execSQL("ALTER TABLE New_Temp1 RENAME TO Temp1");
Temp1 表已经存在于数据库中。我不知道它的架构。意味着我不知道该表的列。所以我正在创建一个新表 New_temp1。当我尝试将数据从 Temp1 复制到 New_Temp1 时,应用程序崩溃。
**Caused by: android.database.sqlite.SQLiteException: table New_Temp1 has 33 columns but 28 values were supplied (code 1): , while compiling: INSERT INTO New_Temp1 SELECT * FROM Temp1**
如何解决,不知道 Temp1 表中缺少哪些列。
【问题讨论】:
-
您创建了包含 33 列的 New_Temp1,并且您想从 Temp1 复制 28 列。如果您不知道应该将哪一列复制到哪一列,那么您就不能这样做。
-
@forpas 我可以知道我缺少哪些列吗?
-
检查我的答案。
标签: android sql android-sqlite sql-insert