Pendahuluan
DROP TABLE
pernyataan memungkinkan tabel untuk dihapus dari database MySQL. Pernyataan ini menghapus seluruh struktur serta isi tabel.
Tutorial mengeksplorasi DROP
perintah pernyataan dan menampilkan opsi untuk menghapus tabel dari database MySQL .
Prasyarat
- Akses ke jendela terminal/baris perintah
- Sistem yang menjalankan MySQL
- Basis data yang berfungsi atau uji
- Pengguna MySQL dengan hak istimewa yang diperlukan (diperlukan hak DROP)
DROP TABLE Sintaks Perintah MySQL
Untuk menghapus tabel di MySQL, gunakan DROP TABLE
penyataan. Sintaks dasar perintahnya adalah sebagai berikut:
DROP [TEMPORARY] TABLE [IF EXISTS] table_name [, table_name] [RESTRICT | CASCADE];
Mari kita uraikan sintaksnya:
DROP TABLE
pernyataan menghapus tabel dan barisnya secara permanen.[TEMPORARY]
opsi memastikan Anda menghapus tabel sementara saja.[IF EXISTS]
opsi menjatuhkan tabel hanya jika ada.[RESTRICT]
opsi akan tersedia di iterasi MySQL di masa mendatang. Ini memastikan bahwa baris induk tidak dihapus jika baris turunan mereferensikan nilai di baris induk tersebut.[CASCADE]
option memastikan bahwa saat Anda menghapus sebuah baris, semua baris dalam tabel terkait yang mereferensikan baris tersebut juga akan dihapus. Opsi ini akan tersedia dalam iterasi MySQL di masa mendatang.
Gunakan Pernyataan DROP untuk Menghapus Tabel
Untuk menghapus tabel secara permanen, masukkan pernyataan berikut di dalam shell MySQL:
DROP TABLE table1;
Ganti table1
dengan nama tabel yang ingin Anda hapus. Output mengonfirmasi bahwa tabel telah dihapus.
Gunakan DROP untuk Menghapus Hanya Tabel yang Ada
MySQL menghasilkan kesalahan jika Anda mencoba menjatuhkan tabel yang tidak ada. Ini bisa menjadi masalah saat menyertakan DROP
pernyataan dalam skrip yang telah ditentukan.
Untuk memeriksa MySQL apakah ada tabel terlebih dahulu:
DROP TABLE IF EXISTS table1;
IF EXISTS
opsi menghasilkan peringatan jika table1
tidak ada.
Menggunakan opsi ini mencegah skrip terjebak pada kesalahan. Tampilkan peringatan dengan memasukkan:
SHOW WARNINGS;
Cara MENGHAPUS Banyak Tabel
Untuk menghapus beberapa tabel dengan satu DROP
pernyataan:
DROP TABLE IF EXISTS table1, table2, table3;
IF EXISTS
opsi menunjukkan satu peringatan sebagai table1
tidak ada.
Cara MENGHAPUS Tabel Sementara
Tabel sementara digunakan untuk menghasilkan dan menyimpan kumpulan data sesaat sebelum digunakan.
Misalnya, Anda mungkin memutuskan untuk menyimpan hasil SELECT
pernyataan dengan beberapa pernyataan GABUNG dalam tabel sementara. Selanjutnya, kueri tabel sementara dengan mudah.
Untuk menghapus tabel sementara tanpa risiko kehilangan tabel biasa, gunakan TEMPORARY
pilihan:
DROP TEMPORARY TABLE IF EXISTS table4;
Cara DROP Tabel Berdasarkan String Karakter
MySQL tidak memiliki perintah bawaan untuk menjatuhkan tabel yang cocok dengan string karakter. Sebagai gantinya, gunakan skrip untuk membantu melakukan tugas ini.
1. Tentukan database dan string karakter yang ingin Anda filter:
set @schema = 'tableselection';
set @string = 'table%';
Ganti tableselection
dengan nama database Anda. Ganti table%
dengan string karakter yang ingin Anda pilih dan hapus. Pastikan untuk meninggalkan %
wildcard di akhir.
2. Buat pernyataan MySQL yang memilih semua tabel yang cocok dengan string karakter:
SELECT CONCAT ('DROP TABLE ',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';')
INTO @droptool
FROM information_schema.tables
WHERE @schema = database()
AND table_name LIKE @string;
Kode ini memilih semua tabel dengan table%
karakter yang ditentukan dari information_schema
meja. Kemudian menggabungkannya dan menjalankan DROP
pernyataan terhadap kelompok tersebut.
3. Buat seleksi dari hasil kode ini:
SELECT @droptool;
4. Menampilkan isi perintah:
PREPARE stmt FROM @droptool;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
Kode di bagian bawah disajikan secara keseluruhan untuk kemudahan penggunaan:
set @schema = 'tableselection';
set @string = 'table%';
SELECT CONCAT ('DROP TABLE ',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';')
INTO @droptool
FROM information_schema.tables
WHERE @schema = database()
AND table_name LIKE @string;
SELECT @droptool;
PREPARE stmt FROM @droptool;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;