私のバージョンのSQLiteはIF EXISTS
演算子をサポートしていません。エラーが表示されることなく、存在するテーブルと存在しないテーブルを削除するにはどうすればよいですか?
現在、ライブアプリケーションのバージョンを更新できないため、IF EXISTS
をサポートするSQLiteバージョンを使用できません。
公式ドキュメント は、IF EXISTSを使用するように指示しているため、アップグレードするのが最善の計画であると思われます。
できない場合は、テーブルが空であるかどうかにかかわらず、成功するテーブルで簡単な操作を実行できるかどうかを確認する必要があります。成功した場合、テーブルを削除する必要があります。失敗した場合、テーブルはすでに削除されています。試行する操作の種類の例は次のとおりです。
SELECT COUNT(*) FROM theTable;
これから発生する可能性のあるエラーを言語レベルでトラップする必要があることに注意してください。トランザクションでロット全体(プローブ、エラートラップ、ドロップテーブル)をラップすることもできます。もちろん、エラー処理を行う場合のもう1つのアプローチは、テーブルを削除してエラーを処理することです。
次を使用できます。
DROP TABLE IF EXISTS TABLE_NAME;
これを使用してください。
DROP TABLE TABLE_NAME;
クエリで何らかの方法でメタデータテーブルを使用して、テーブルが存在するかどうかを確認できます。
SELECT count(*) > 0 FROM sqlite_master where tbl_name = "<table_name>" and type="table"