TRUNCATE TABLE оператор MySQL

В этом учебном пособии вы узнаете, как использовать MySQL оператор TRUNCATE TABLE с синтаксисом и примерами.

Описание

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

Предупреждение. Если вы полностью очищаете таблицу, то оператор TRUNCATE TABLE нельзя откатить.

Синтаксис

Синтаксис TRUNCATE TABLE в MySQL:
TRUNCATE TABLE [database_name.]table_name;

Параметры или аргументы

database_name — необязательный. Если указан, то это имя базы данных.
table_name — таблица, которую вы хотите очистить.

Примечание

  • Когда вы очищаете таблицу, счетчики AUTO_INCREMENT в таблице будут сброшены.
  • MySQL очищает таблицу, удаляя и создавая таблицу вновь. Таким образом, триггеры DELETE для таблицы не срабатывают во время очистки.
  • Начиная с MySQL 5.5, вы не можете очистить таблицу InnoDB, на которую ссылается внешний ключ в другой таблице.
  • Начиная с MySQL 5.6, вы не можете очистить таблицу NDB, на которую ссылается внешний ключ в другой таблице.

Пример

В MySQL очистка таблицы — это быстрый способ очистить записи из таблицы, если вам не нужно беспокоиться об откате. В большинстве случаев MySQL обрабатывает процесс очистки таблицы несколько иначе, чем другие базы данных, такие как Oracle или SQL Server.

Рассмотрим пример использования TRUNCATE TABLE в MySQL.
Например:

В этом примере очищается таблица customers, и удаляется все записи из этой таблицы.
Он будет эквивалентен следующему оператору DELETE в MySQL:

Оба этих оператора приведут к удалению всех данных из таблицы customers. Основное различие между ними состоит в том, что оператор DELETE вы можете откатить, если выберете, но вы не сможете откатить оператор TRUNCATE TABLE. Так что будьте предельно внимательны.

Рассмотрим еще один пример, где мы используем префикс имени таблицы с именем базы данных.
Например:

В этом примере очищается таблица, называемая products в базе данных best.