2

別のテーブルが存在する場合、データベース内のテーブルを削除しようとしています。

次のクエリを使用して、テーブルのバックアップを作成しました。

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 を実行できます。

4

2 に答える 2

0

データベースの定義でテーブルを探して、テーブルの存在を確認する必要があります。次のような方法でうまくいくはずです。

IF (EXISTS (SELECT * 
                 FROM INFORMATION_SCHEMA.TABLES 
                 WHERE TABLE_SCHEMA = 'TheSchema' 
                 AND  TABLE_NAME = 'TheTable'))
于 2013-08-07T20:45:32.303 に答える