DROP DATABASE

※Nội dung bài tìm hiểu này được thực hiện trên phiên bản MySQL 8.0

Trong MySQL, để xóa 1 cơ sở dữ liệu (database), chúng ta sử dụng cú pháp sau:

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name;

Trong đó:

  • DROP DATABASE db_name => xóa tất cả các table của database và xóa luôn database đó. Để sử dụng được khai báo này, chúng ta cần quyền DROP cho database này. DROP SCHEMA là từ đồng nghĩa với DROP DATABASE.
  • IF EXISTS => chỉ thực hiện xóa nếu như database tồn tại, được sử dụng để tránh việc phát sinh lỗi trong trường hợp database không tồn tại.

Khai báo DROP DATABASE sẽ trả về số table của database mà chúng ta muốn xóa. Chúng ta có thể xác nhận việc này qua 2 ví dụ bên dưới.

Ví dụ 1: Tạo database có tên là testdb, không tạo table và xóa database này.

mysql> create database testdb;
Query OK, 1 row affected (0.03 sec)
mysql> drop database testdb;
Query OK, 0 rows affected (0.03 sec)

Ví dụ 2: Tạo database testdb, tạo 2 table là testdb_user và testdb_role, và xóa database này.

mysql> create table testdb;
Query OK, 1 row affected (0.07 sec)
mysql> use testdb;
Database changed
mysql> create table testdb_user (
userId int primary key auto_increment,
username varchar(40) not null
);
Query OK, 0 rows affected (0.10 sec)
mysql> create table testdb_role (
roleId smallint primary key auto_increment,
roleName varchar(20) not null
);
Query OK, 0 rows affected (0.06 sec)
mysql> drop database testdb;
Query OK, 2 rows affected (0.11 sec)

Khai báo DROP DATABASE sẽ xóa khỏi thư mục của database những tập tin và thư mục mà MySQL tự tạo trong quá trình hoạt động, và xóa luôn thư mục của database đó. Những tập tin sẽ được xóa là những tập tin có phần mở rộng như bên dưới:

  • .BAK
  • .DAT
  • .HSH
  • .MRG
  • .MYD
  • .MYI
  • .cfg
  • .db
  • .ibd
  • .ndb

Nếu các tập tin và thư mục khác còn lại trong thư mục của database sau khi MySQL xóa những tập tin đã được liệt kê ở trên, thì thư mục của database sẽ không được xóa. Trong trường hợp đó, chúng ta cần xóa thủ công các tập tin và thư mục còn lại và chạy lại khai báo DROP DATABASE.

Việc xóa 1 database sẽ không xóa các table TEMPORARY được tạo trong database đó. Các table TEMPORARY này sẽ tự động được xóa khi session tạo chúng kết thúc.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.