sql >> データベース >  >> RDS >> SQLite

SQLite-テーブルをドロップ

    SQLiteにテーブルをドロップするには、DROP TABLEを使用します ステートメント。

    このステートメントを実行すると、データベースからテーブルが削除されます。データベーススキーマとディスクファイルから完全に削除されます。したがって、テーブルを復元することはできません。テーブルに関連付けられているすべてのインデックスとトリガーも削除されます。

    基本的なDROP TABLE ステートメント

    まず、データベース内のテーブルを確認しましょう:

    sqlite> .tables
    Albums   Albums1  Albums2  Artists
    

    前の演習の予備のテーブルがいくつかあるので、1つドロップしましょう。

    次のコードは、 Albums1 を削除します テーブル:

    DROP TABLE Albums1;

    そのコードを実行した後、テーブルを再度確認できます:

    sqlite> .tables
    Albums   Albums2  Artists
    

    テーブルが削除されました。

    テーブルが存在するかどうかを確認します

    IF EXISTSを使用できます SQLiteがテーブルを削除しようとする前にテーブルが存在するかどうかを確認する句。

    これにより、テーブルが存在しない場合に通常生成されるエラーを防ぐことができます。

    まず、存在しないテーブルをなしで削除してみましょう。 IF EXISTSを使用する 句。ドロップしたものをドロップしてみましょう:

    DROP TABLE Album1;

    これにより、次のようになります。

    sqlite> DROP TABLE Album1;
    Error: no such table: Album1
    

    では、もう一度試してみましょう。ただし、今回はIF EXISTSを使用します。 条項:

    DROP TABLE IF EXISTS Album1;

    結果:

    sqlite> DROP TABLE IF EXISTS Album1;
    sqlite> 
    

    したがって、何も起こりませんでした。重要なのは、エラーがスローされなかったことです。

    主キーを含むテーブルを削除する

    では、主キーを含むテーブルを削除しようとして、それらを参照する外部キーがある場合はどうなりますか?

    試してみましょう:

    DROP TABLE Artists;

    結果:

    sqlite> DROP TABLE Artists;
    Error: FOREIGN KEY constraint failed
    

    予想通り、失敗しました。したがって、テーブルを削除する必要がある場合は、最初に関連するテーブルを削除する必要があります。

    SQLiteは、テーブルを削除する前に実際にデータを削除しようとします。外部キー制約チェックが行われるのは、この削除アクションです。

    SQLiteは、削除(およびその後の削除)操作を実行する前に、テーブルに関連付けられているインデックスまたはトリガーも削除します。


    1. MoodleMySQLデータベースをバックアップする方法

    2. MySQLで最大接続数を増やす方法

    3. CodeIgniter:提供された設定を使用してデータベースサーバーに接続できませんエラーメッセージ

    4. 初心者向けのSQLMIN()