Как очистить таблицу в mysql

GuDron

dumpz.ws
Admin
Регистрация
28 Янв 2020
Сообщения
7,706
Реакции
1,447
Credits
24,995
В MySQL, как и в других СУБД можно очищать таблицы. Очистка таблицы позволяет удалять данные при этом не затрагивая саму структуру таблицы. В MySQL существует несколько способов очистки таблицы. В частности, можно выделить очистку таблицы при помощи команд DELETE и TRUNCATE.

Обе команды выполняют одну и ту же задачу, но имеют несколько отличий о которых будет рассказано далее в статье. Также будет упомянуто об удалении данных из таблицы при наличии внешних ключей (foreign key). В данной статье будет рассмотрено как очистить таблицу в MySQL различными способами в операционной системе Ubuntu 20.04.

КАК ОЧИСТИТЬ ТАБЛИЦУ В MYSQL​

Для очистки таблицы в MySQL существует несколько способов. Далее будут рассмотрены все возможные способы.

1. УДАЛЕНИЕ ДАННЫХ ТАБЛИЦЫ С ПОМОЩЬЮ DELETE​

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

a996685ef045175140227.png

При помощи оператора DELETE и заданного условия - в данном случае удаление будет происходит по столбцу firstname который принимает значение имени пользователя будет удалена запись с номером (id) 1 и именем John:

DELETE FROM MyGuests WHERE firstname = 'John';

8b624855326e729cc6ec8.png

Также оператор DELETE может удалять все строки таблицы сразу. В качестве примера есть таблица с двумя записями:

4728147bd38333dbef040.png

Удалим все строки за один раз не задавая никаких условий. Для этого необходимо выполнить следующий SQL запрос:

DELETE FROM MyGuests;

e16c952e3aad9f511469c.png

На этом очистка таблицы MySQL завершена.

2. УДАЛЕНИЕ ДАННЫХ ТАБЛИЦЫ С ПОМОЩЬЮ TRUNCATE​

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

  • 1) TRUNCATE не позволяет удалять отдельные строки;
  • 2) DELETE блокирует каждую строку, а TRUNCATE всю таблицу;
  • 3) TRUNCATE нельзя использовать с таблицами содержащими внешние ключи других таблиц;
  • 4) После использования оператора TRUNCATE в консоль не выводится информация о количестве удаленных строк из таблицы.
В качестве примера возьмем таблицу с двумя записями из предыдущего примера:

9138170d85b2c59487744.png

Для очистки этой таблицы MySQL от всех записей необходимо выполнить следующий SQL запрос:

TRUNCATE MyGuests;

e0ac4b857d718f9f5c9c5.png

Как уже было упомянуто ранее команда TRUNCTE не выводит количество удалённых строк в таблице поэтому в консоль был выведен текст 0 rows affected.

КАК ОЧИСТИТЬ ТАБЛИЦУ С FOREIGN KEY CONSTRAINT​

Если в таблице присутствуют внешние ключи (Foreign Key) то просто так очистить таблицу не получится. Предположим, есть 2 таблицы - Equipment и EquipmentCategory: