将新列添加到Android SQLite数据库创建新表

时间:2014-07-25 14:34:26

标签: android sql

我想在表格中添加列,我在主题之前搜索。 似乎他们喜欢提醒表。但我更愿意创建新表。 所以我试着这样做 `

@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不能这样做,如何修改更好?

1 个答案:

答案 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。

您还可以使用第三列的任何默认数据。