如果存在另一个表,我正在尝试在数据库中删除表。
我使用此查询对表进行了备份:
ALTER TABLE AppProfile RENAME TO AppProfile_backup
现在,我想通过以下方式恢复备份表并删除AppProfile:
DROP TABLE AppProfile IF EXISTS TABLE AppProfile_backup
(ALTER TABLE AppProfile_backup RENAME TO AppProfile) IF NOT EXISTS AppProfile
但是,在“ IF”标记附近,两行都出现语法错误。
有关此问题的背景信息,我使用了Android中的SQLiteOpenHelper类。您可以通过调用[db_handler_instance] .getWritableDatabase()。execSQL(“ random query”)来在该环境中执行原始SQL。
最佳答案
用Java怎么做呢?您可以查询数据字典...
String sql = "SELECT 1 "
+ " FROM sqlite_master "
+ " WHERE type = 'table' "
+ " AND name = 'AppProfile_backup'";
Cursor cursor = db.rawQuery(sql, null);
...并删除表(如果备份表已存在):
if (cursor.moveToNext())
db.execSQL("DROP TABLE AppProfile;");
else
db.execSQL("ALTER TABLE ...");