Terkadang Anda mungkin perlu menghapus semua baris dalam tabel di database MySQL. Ada beberapa cara untuk melakukannya menggunakan pernyataan TRUNCATE TABLE, DROP TABLE dan DELETE. Pada artikel ini, kita akan melihat cara memotong tabel di MySQL menggunakan pernyataan MySQL TRUNCATE TABLE.
Cara Memotong Tabel di MySQL
Berikut cara memotong tabel di MySQL menggunakan pernyataan TRUNCATE TABLE. Berikut sintaks pernyataan MySQL TRUNCATE TABLE.
TRUNCATE [TABLE] table_name;
Dalam kueri di atas, Anda perlu menentukan nama tabel yang akan dipotong, menggantikan nama_tabel.
Kata kunci TABLE bersifat opsional setelah TRUNCATE.
Bonus Baca :MySQL DROP VIEW
Contoh TABEL TRUNCATE MySQL
Katakanlah Anda memiliki tabel pesanan di MySQL.
mysql> create table daily_orders(id int, order_date date,amount int); mysql> insert into daily_orders(id, order_date, amount) values(1, '2020-07-01',250),(2,'2020-07-02',320), (3,'2020-07-03',450); mysql> select * from daily_orders; +------+------------+--------+ | id | order_date | amount | +------+------------+--------+ | 1 | 2020-07-01 | 250 | | 2 | 2020-07-02 | 320 | | 3 | 2020-07-03 | 450 | +------+------------+--------+
Berikut query SQL untuk memotong tabel di MySQL.
mysql> truncate table daily_orders; mysql> select * from daily_orders; Empty set (0.00 sec)
Bonus Baca :Cara Membuat Index di MySQL
MySQL TRUNCATE vs DELETE
TRUNCATE TABLE mirip dengan pernyataan DELETE di MySQL. Namun, ada beberapa perbedaan utama. Inilah perbedaan antara TRUNCATE dan DELETE di MySQL.
HAPUS MySQL
- HAPUS adalah pernyataan bahasa manipulasi Data (DML). Ini menghapus satu baris pada satu waktu. Jadi dieksekusi menggunakan kunci baris, dan setiap baris dikunci untuk dihapus
- operasi HAPUS dicatat
- Anda dapat menentukan klausa WHERE dalam pernyataan DELETE untuk menghapus hanya baris tertentu di tabel Anda
- DELETE lebih lambat daripada truncate karena operasi penghapusan dicatat
MySQL TRUNCATE
- TRUNCATE adalah perintah Data Description Language (DDL) yang mengunci tabel untuk dihapus tetapi tidak mengunci baris.
- TRUNCATE menghapus semua data dalam tabel. Jadi Anda tidak dapat menentukan klausa WHERE dalam pernyataan TRUNCATE.
- Operasi TRUNCATE tidak dicatat dan karena itu jauh lebih cepat daripada pernyataan DELETE.
Rollback dimungkinkan dalam pernyataan DELETE dan TRUNCATE.
Bonus Baca :Cara Membuat Stored Procedure di MySQL
Cara Memotong Tabel Dengan Kunci Asing
Jika tabel Anda memiliki batasan kunci asing, maka ketika Anda menjalankan pernyataan TRUNCATE untuk tabel tersebut, Anda akan mendapatkan kesalahan berikut.
ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails
Jadi, Anda perlu masuk ke MySQL dan menonaktifkan pemeriksaan Kunci Asing sebelum memotong tabel, menggunakan perintah berikut
SET FOREIGN_KEY_CHECKS=0;
Setelah Anda memotong tabel, aktifkan kembali pemeriksaan kunci asing
SET FOREIGN_KEY_CHECKS=1;
Bonus Baca :Cara Membuat User di MySQL
Cara Memotong Semua Tabel di MySQL
MySQL TRUNCATE TABLE memungkinkan Anda untuk menghapus hanya satu tabel dalam satu waktu. Jadi jika Anda ingin menghapus beberapa tabel, Anda perlu mengeluarkan perintah TRUNCATE TABLE secara terpisah. Berikut adalah contoh untuk memotong beberapa tabel table1, table2, table3, ...
mysql> TRUNCATE TABLE table1; mysql> TRUNCATE TABLE table2; mysql> TRUNCATE TABLE table3;
Bonus Baca :Cara Membuat Database di MySQL
Berikut adalah kueri SQL untuk menghasilkan beberapa pernyataan TRUNCATE TABLE, menggunakan nama tabel di database Anda. Ganti DATABASE_NAME dalam kueri berikut dengan nama database Anda.
mysql> SELECT Concat('TRUNCATE TABLE ',table_schema,'.',TABLE_NAME, ';') FROM INFORMATION_SCHEMA.TABLES where table_schema in ('sample'); +------------------------------------------------------------+ | Concat('TRUNCATE TABLE ',table_schema,'.',TABLE_NAME, ';') | +------------------------------------------------------------+ | TRUNCATE TABLE sample.a; | | TRUNCATE TABLE sample.calendar; | | TRUNCATE TABLE sample.categories; | | TRUNCATE TABLE sample.daily_orders; | | TRUNCATE TABLE sample.login; | | TRUNCATE TABLE sample.meeting; | | TRUNCATE TABLE sample.order_status; | | TRUNCATE TABLE sample.orders; | | TRUNCATE TABLE sample.orders2; | | TRUNCATE TABLE sample.orders3; | | TRUNCATE TABLE sample.product_sales; | | TRUNCATE TABLE sample.products; | | TRUNCATE TABLE sample.sales; | | TRUNCATE TABLE sample.user_data; | | TRUNCATE TABLE sample.users; | +------------------------------------------------------------+
Gunakan hasil kueri di atas untuk memotong semua tabel dalam database. Mudah-mudahan, sekarang Anda dapat memotong tabel di MySQL
Ubiq memudahkan untuk memvisualisasikan data dalam hitungan menit, dan memantau di dasbor waktu nyata. Cobalah Hari ini!