我想在表格中添加列,我在主题之前搜索。 似乎他们喜欢提醒表。但我更愿意创建新表。 所以我试着这样做 `
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
db.execSQL("create table tmp_talbe name VARCHAR(50),number integer,number2 integer");
db.execSQL("insert into tmp_table select * from origin_table");
db.execSQL("drop if exists table origin_table");
db.execSQL("alter tmp_talbe rename to origin_talbe");
}`
我在将旧表数据复制到新表时遇到问题。如果旧表中有2列,则新表中有3列, 。它将在tmp_table中显示错误3列,但只显示2个供应商。 似乎代码行2不能这样做,如何修改更好?
答案 0 :(得分:0)
您收到错误是因为' select * from origin_table'只返回2列,而不是3列,tmp_table有3列。
我假设原始表格列为: NAME,Number1 ,并且您希望将 Number2 添加为第三列:
更改
db.execSQL("insert into tmp_table select * from origin_table");
要
db.execSQL("insert into tmp_table select NAME, Number1, NULL as Number2 from origin_table");
将数据从Original表复制到Temp表时,对第三列使用NULL。
您还可以使用第三列的任何默认数据。