Удалить все из таблицы MySQL (TRUNCATE TABLE)

Удалить все из таблицы MySQL (TRUNCATE TABLE)

В этом уроке вы узнаете, как быстро удалить все строки из таблицы MySQL с помощью SQL запроса.

Удаление данных таблицы

TRUNCATE TABLE удаляет все строки из таблицы быстрее, чем DELETE. Логически, TRUNCATE TABLE похож на оператор DELETE без условия WHERE.

Оператор TRUNCATE TABLE удаляет все строки из таблицы, но структура таблицы и ее столбцы, ограничения, индексы и т.д. остаются неизменными. Чтобы удалить определение таблицы в дополнение к ее данным, вы можете использовать оператор DROP TABLE.

Синтаксис

Основной синтаксис TRUNCATE TABLE может быть задан с помощью:

TRUNCATE TABLE table_name;

Предположим, у нас есть таблица сотрудников в нашей базе данных со следующими записями:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Vasya Pupkin | 2001-05-01 |   5000 |       4 |
|      2 | Vanya Pupkin | 2002-07-15 |   6000 |       2 |
+--------+--------------+------------+--------+---------+

Следующая команда удаляет все строки из таблицы employees:

TRUNCATE TABLE employees;

Теперь, после выполнения вышеприведенной команды SQL, если вы попытаетесь выбрать записи из таблицы сотрудников, вы получите пустой набор результатов.

TRUNCATE TABLE в сравнении с DELETE

Хотя DELETE и TRUNCATE TABLE, имеют одинаковый эффект - они работают по-разному. Вот некоторые основные различия между этими двумя утверждениями:

  • Оператор TRUNCATE TABLE удаляет и заново создает таблицу таким образом, чтобы любое значение автоинкремента сбрасывается до начального значения, которое обычно равно 1.
  • DELETE позволяет фильтровать, какие строки должны быть удалены, на основе необязательного условия WHERE, тогда как TRUNCATE TABLE не поддерживает условие WHERE, а просто удаляет все строки.
  • TRUNCATE TABLE работает быстрее и использует меньше системных ресурсов, чем DELETE, потому что DELETE сканирует таблицу, чтобы сгенерировать число затронутых строк, затем удаляет строки по одной и записывает запись в журнал базы данных для каждой удаленной строки, тогда как TRUNCATE TABLE просто удалить все строки без предоставления дополнительной информации.

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*