如果存在另一个表,我正在尝试删除数据库中的一个表。
我使用此查询备份了表:
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 ...");
关于sql - 如果存在另一个表,如何删除数据库中的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18113383/