Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Khác biệt quan trọng giữa TRUNCATE và DROP trong MySQL

Khác biệt quan trọng nhất: TRUNCATE không phá hủy cấu trúc bảng, trong khi DROP xóa cả cấu trúc bảng.

Ví dụ

mysql> CREATE TABLE testing(id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, Name VARCHAR(20));
Query OK, 0 rows affected (0.24 sec)
mysql> INSERT INTO testing(Name) VALUES('Ram'),('Mohan'),('John');
Query OK, 3 rows affected (0.12 sec)
mysql> SELECT * FROM testing;
+----+-------+
| id | Name  |
+----+-------+
| 1  | Ram   |
| 2  | Mohan |
| 3  | John  |
+----+-------+
3 rows in set (0.00 sec)

Sau TRUNCATE, cấu trúc bảng vẫn còn và AUTO_INCREMENT reset:

mysql> TRUNCATE TABLE testing;
Query OK, 0 rows affected (0.04 sec)
mysql> DESCRIBE testing;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| Name  | varchar(20) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.21 sec)

Sau DROP, bảng biến mất hoàn toàn:

mysql> DROP TABLE testing;
Query OK, 0 rows affected (0.08 sec)
mysql> DESCRIBE testing;
ERROR 1146 (42S02): Table 'query.testing' doesn't exist