我正在尝试在我的应用程序中创建一个SQLite数据库,将其导出到SD卡。我收到了错误
01-13 12:31:39.621:I / Database(3828):sqlite返回:错误代码= 1,msg =表库存没有名为location的列
SQLite插入错误
这是我创建数据库的代码......我似乎无法找到问题所在。
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE inventory ("
+ "_id INTEGER PRIMARY KEY," + "serialnum TEXT,"
+ "modelnum TEXT," + "manufact TEXT," + "description TEXT,"
+ "time DATETIME" + ");");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion < 2) {
Log.d("SW","Upgrading database from version " + oldVersion + " to " + newVersion);
db.execSQL("ALTER TABLE inventory ADD location TEXT");
}
if (oldVersion < 3) {
Log.d("SW","Upgrading database from version " + oldVersion + " to " + newVersion);
db.execSQL("ALTER TABLE inventory ADD other TEXT");
}
}
答案 0 :(得分:0)
尝试
ALTER TABLE inventory ADD COLUMN location TEXT
答案 1 :(得分:0)
尝试将第一个SQL命令更改为:
db.execSQL("CREATE TABLE inventory ("
+ "_id INTEGER PRIMARY KEY," + "serialnum TEXT,"
+ "modelnum TEXT," + "manufact TEXT," + "description TEXT,"
+ "time DATETIME," + "location TEXT" + ");");
- 您的create table语句未包含location列。
答案 2 :(得分:0)
更正新列的正确语法:
ALTER TABLE test1 ADD COLUMN foo;
试试这个:
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion < 2) {
Log.d("SW","Upgrading database from version " + oldVersion + " to " + newVersion);
db.execSQL("ALTER TABLE inventory ADD COLUMN location TEXT");
}
if (oldVersion < 3) {
Log.d("SW","Upgrading database from version " + oldVersion + " to " + newVersion);
db.execSQL("ALTER TABLE inventory ADD COLUMN other TEXT");
}
}