Удалить все записи в таблице MYSQL в phpMyAdmin


122

Пользуюсь wampserver 2.2. Когда я хочу удалить все записи таблицы в phpMyAdmin (выбрать все), он удаляет только одну запись, а не все записи. Почему он не удаляет все записи?


3
зависит от вашего запроса, вы выполнили это так? DELETE FROM tableName
Джон Ву,

Выделите название стола и нажмитеSHIFT-DEL
DevlshOne

Ответы:


130

Перейдите в свою структуру db -> и сделайте пустую в требуемой таблице. Посмотреть здесь:

этот скриншот


167

У вас есть 2 варианта deleteи truncate:

  1. delete from mytable

    Это удалит все содержимое таблицы, не сбрасывая автоинкрементный идентификатор, этот процесс очень медленный. Если вы хотите удалить определенные записи, добавьте в конце предложение where.

  2. truncate myTable

    Это сбросит таблицу, т.е. все поля с автоматическим приращением будут сброшены. Это DDL и очень быстро. Вы не можете удалить какую-либо конкретную запись через truncate.


130

Перейдите на вкладку Sql и выполните один из следующих запросов:

delete from tableName;

Удалить : удалит все строки из вашей таблицы. Следующая вставка примет следующий идентификатор автоматического увеличения.

или

truncate tableName;

Truncate : также удалит строки из вашей таблицы, но начнется с новой строки с 1.

Подробный блог с примером: http://sforsuresh.in/phpmyadmin-deleting-rows-mysql-table/


27

Используйте этот запрос:

DELETE FROM tableName;

Примечание. Чтобы удалить определенную запись, вы также можете указать условие в предложении where в запросе.

ИЛИ вы также можете использовать этот запрос:

truncate tableName;

Также помните, что у вас не должно быть никаких отношений с другой таблицей. Если в таблице будет какое-либо ограничение внешнего ключа, эта запись не будет удалена и выдаст ошибку.


19

Вы можете удалить все строки с помощью этой команды, но помните, что после того, как вы запустите команду truncate, вы не сможете ее откатить.

  truncate tableName;

11

'Truncate tableName' завершится ошибкой для таблицы с определенным ограничением ключа. Он также не будет переиндексировать табличное AUTO_INCREMENTзначение. Вместо этого удалите все записи таблицы и сбросьте индексирование до 1, используя этот синтаксис sql:

DELETE FROM tableName;
ALTER TABLE tableName AUTO_INCREMENT = 1

4

Интересный факт.

Я был уверен, что TRUNCATE всегда будет работать лучше, но в моем случае для базы данных с примерно 30 таблицами с внешними ключами, заполненными всего несколькими строками, для TRUNCATE всех таблиц потребовалось около 12 секунд, а не всего несколько сотен миллисекунд. УДАЛИТЬ строки. Установка автоматического приращения добавляет в общей сложности около секунды, но все равно намного лучше.

Поэтому я предлагаю попробовать оба варианта, чтобы посмотреть, какой из них работает быстрее в вашем случае.



0
  • Посетите phpmyadmin
  • Выберите свою базу данных и щелкните структуру
  • Перед таблицей вы можете увидеть Empty , щелкните по ней, чтобы удалить все записи из выбранной таблицы.

демо-базы данных структуры

Или вы можете сделать то же самое с помощью sql-запроса:

Нажмите на SQL, присутствующий рядом со структурой

TRUNCATE tablename; //offers better performance, but used only when all entries need to be cleared
or
DELETE FROM tablename; //returns the number of rows deleted

Обратитесь к DELETE и TRUNCATE для получения подробной документации.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.