[Android Studio] テーブルを削除する(DROP TABLE)

どうも、tatsuです!

今日は、テーブルを削除する(DROP TABLE)方法を説明します。

※この記事で使用しているAndroid Studioのバージョンは2.3.3です。

テーブルを削除する(DROP TABLE)

アプリ内で一度作成したテーブルを削除することはめったにないと思いますが、例えばデータベースのバージョンアップ時に一度テーブルを削除してから作り直すといった場面もあります。
今回はCustomOpenHelper.javaクラスのonUpgradeメソッドに、テーブルを削除する処理を実装しました。

CustomOpenHelper.java

CustomOpenHelper.javaは以下の通りです。

public class CustomOpenHelper extends SQLiteOpenHelper {

    // データベース自体の名前(テーブル名ではない)
    static final private String DBName = "TATSU_DB";
    // データベースのバージョン(2,3と挙げていくとonUpgradeメソッドが実行される)
    static final private int VERSION = 1;

    // コンストラクタ 以下のように呼ぶこと
    public CustomOpenHelper(Context context){
        super(context, DBName, null, VERSION);
    }

    // データベースが作成された時に実行される処理
    @Override
    public void onCreate(SQLiteDatabase db) {
        /**
         * テーブルを作成する
         * execSQLメソッドにCREATET TABLE命令を文字列として渡すことで実行される
         * 引数で指定されているものの意味は以下の通り
         * 引数1 ・・・ id:列名 , INTEGER:数値型 , PRIMATY KEY:テーブル内の行で重複無し , AUTOINCREMENT:1から順番に振っていく
         * 引数2 ・・・ name:列名 , TEXT:文字列型
         * 引数3 ・・・ price:列名 , INTEGER:数値型
          */
        db.execSQL("CREATE TABLE FOOD_TABLE (" +
                "id INTEGER PRIMARY KEY AUTOINCREMENT, " +
                "name TEXT, " +
                "price INTEGER)");
    }

    // データベースをバージョンアップした時に実行される処理
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        /**
         * テーブルを削除する
         */
        db.execSQL("DROP TABLE IF EXISTS FOOD_TABLE");

        // 新しくテーブルを作成する
        onCreate(db);
    }

    // データベースが開かれた時に実行される処理
    @Override
    public void onOpen(SQLiteDatabase db) {
        super.onOpen(db);
    }
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です