Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Memotong Tabel di MySQL

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!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CONVERT_TZ() Contoh – MySQL

  2. Pengantar SQL Bergabung

  3. mysql secara otomatis menyimpan stempel waktu pembuatan catatan

  4. Sepuluh Alat GUI MySQL Teratas

  5. Tampilan MySQL