Untuk menjatuhkan tabel di SQLite, gunakan DROP TABLE
pernyataan.
Menjalankan pernyataan ini menghapus tabel dari database. Itu benar-benar dihapus dari skema database dan file disk. Oleh karena itu tabel tidak dapat dipulihkan. Semua indeks dan pemicu yang terkait dengan tabel juga dihapus.
Sebuah DROP TABLE
Dasar Pernyataan
Pertama, mari kita tinjau tabel di database kita:
sqlite> .tables Albums Albums1 Albums2 Artists
Kami memiliki beberapa meja cadangan dari latihan kami sebelumnya, jadi mari kita tinggalkan satu.
Kode berikut menghapus Albums1 tabel:
DROP TABLE Albums1;
Setelah menjalankan kode tersebut, kita dapat meninjau tabel kita lagi:
sqlite> .tables Albums Albums2 Artists
Tabel telah dihapus.
Periksa apakah Tabel Ada
Anda dapat menggunakan IF EXISTS
klausa untuk memeriksa apakah tabel sudah ada sebelum SQLite mencoba menghapusnya.
Melakukan hal ini mencegah kesalahan apa pun yang biasanya dihasilkan jika tabel tidak ada.
Pertama, mari kita coba menjatuhkan tabel yang tidak ada tanpa menggunakan IF EXISTS
ayat. Mari kita coba lepaskan yang baru saja kita jatuhkan:
DROP TABLE Album1;
Ini menghasilkan sebagai berikut:
sqlite> DROP TABLE Album1; Error: no such table: Album1
Oke, jadi mari kita coba lagi, tapi kali ini dengan IF EXISTS
klausa:
DROP TABLE IF EXISTS Album1;
Hasil:
sqlite> DROP TABLE IF EXISTS Album1; sqlite>
Jadi tidak ada yang terjadi. Yang penting, tidak ada kesalahan yang terjadi.
Lepaskan Tabel dengan Kunci Utama
Jadi apa yang terjadi jika kita mencoba menjatuhkan tabel yang berisi kunci utama, dan ada kunci asing yang mereferensikannya?
Mari kita coba:
DROP TABLE Artists;
Hasil:
sqlite> DROP TABLE Artists; Error: FOREIGN KEY constraint failed
Seperti yang diharapkan, itu gagal. Jadi, jika Anda perlu menghapus tabel, Anda harus menghapus tabel terkait terlebih dahulu.
SQLite sebenarnya mencoba menghapus data sebelum menjatuhkan tabel. Tindakan penghapusan inilah yang menyebabkan pemeriksaan batasan kunci asing dilakukan.
SQLite juga menghapus semua indeks atau pemicu yang terkait dengan tabel sebelum menjalankan operasi hapus (dan penurunan berikutnya).