3 способа удалениях всех таблицы в базе данных MySQL, MariaDB
Часто возникает вопрос, как удалить все таблицы в базе данных MySQL, MariaDB. Ниже рассмотрим несколько вариантов.
В общем случае удалить таблицы из базы данных можно командой в консоли mysql:
mysql> USE databasename; mysql> DROP table00 table01, table02;
Если у вас таблиц десятки и сотни, очевидно, что вручную их указывать неудобно. Ниже рассмотрим несколько вариантов удаления.
1 способ
Просто удаляем базу данных. Пользователя удаляемой базы данных создавать заново не надо, все его права сохранятся. И потом импортируем как обычно.
mysql -u root -p SHOW DATABASES; DROP DATABASE [IF EXISTS] database_name;
2 способ
В SQL запросе ниже замените testdb на имя базы данных, которую вы хотите удалить. Будет сгенерирован пакет операторов SQL, вам нужно снова запустить набор результатов, которые удалят все таблицы без удаления базы данных.
SELECT concat('DROP TABLE IF EXISTS ', TABLE_NAME, ';') FROM information_schema.tables WHERE table_schema = 'testdb';
В консоли вы получите такой набор команд:
+----------------------------------------------------+ | concat('DROP TABLE IF EXISTS ', TABLE_NAME, ';') | +----------------------------------------------------+ | DROP TABLE IF EXISTS cm_options; | | DROP TABLE IF EXISTS cm_usermeta; | | DROP TABLE IF EXISTS cm_users; | | DROP TABLE IF EXISTS cm_term_taxonomy; | | DROP TABLE IF EXISTS cm_termmeta; | | DROP TABLE IF EXISTS cm_commentmeta; | +----------------------------------------------------+
3 способ
Выше 2 способа позволяли удалять таблицы из консоли mysql, но если у вас установлен phpmyadmin, тогда проще удалить через него.

11 Самых Популярных Статей
- ulimit (limits.conf) управление ограничениями ресурсов ОС Linux
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Что такое страны tier 1,2,3 и как правильно выбрать ГЕО для рекламной кампании
- Настройка, использование GitLab CI/CD
- Что означает «> /dev/null 2>&1» или перенаправление STDIN, STDOUT и STDERR?
- Настройка и использование сервера OpenVPN в Linux
- PostgreSQL: создать БД, пользователя, таблицу, установить права
- Виды кодировок символов
- Использование rsync в примерах
- my.cnf примеры конфигурации MySQL, MariaDB
- dig проверка DNS сервера
11 Самых Популярных Обзоров
- ТОП 4 лучших антидетект браузеров в 2023 (Бесплатные & Платные)
- Обзор и отзывы о Namecheap в 2023 году
- Хостинг Zomro (Зомро)
- Обзор браузера Dolphin
- ТОП 3 Проверенных VPN, Прокси, Хостинг VPS Турция в 2023
- Что такое абузоустойчивый хостинг (bulletproof)?
- Обзор и отзывы о 4VPS (FourServer) в 2023 году
- Обзор и отзывы AstroProxy в 2023 году
- Обзор и отзывы о PQ Hosting в 2023 году
- Обзор и отзывы о Hostinger в 2023 году: преимущества и недостатки
- Проверенные VPS / VDS хостинг провайдеры
Оператор DELETE стр. 1
Оператор DELETE удаляет строки из временных или постоянных базовых таблиц, представлений или курсоров, причем в двух последних случаях действие оператора распространяется на те базовые таблицы, из которых извлекались данные в эти представления или курсоры. Оператор удаления имеет простой синтаксис:

Если предложение WHERE отсутствует, удаляются все строки из таблицы или представления (представление должно быть обновляемым). Более быстро эту операцию (удаление всех строк из таблицы) можно в Transact-SQL (T-SQL) — процедурное расширение языка SQL, используемое для программирования на стороне сервера в Microsoft SQL Server и Sybase ASE. Transact-SQL также выполнить с помощью команды
Однако есть ряд особенностей в реализации команды TRUNCATE TABLE , которые следует иметь в виду:
- не журнализируется удаление отдельных строк таблицы; в журнал записывается только освобождение страниц, которые были заняты данными таблицы;
- не отрабатывают триггеры, в частности, триггер на удаление;
- команда неприменима, если на данную таблицу имеется ссылка по внешнему ключу, и даже если внешний ключ имеет опцию каскадного удаления.
- значение счетчика ( IDENTITY ) сбрасывается в начальное значение.
Требуется удалить из таблицы Laptop все портативные компьютеры с размером экрана менее 12 дюймов.
Все блокноты можно удалить с помощью оператора
Transact-SQL расширяет синтаксис оператора DELETE , вводя дополнительное предложение FROM :
При помощи источника табличного типа можно конкретизировать данные, удаляемые из таблицы в первом предложении FROM .
При помощи этого предложения можно выполнять соединения таблиц, что логически заменяет использование подзапросов в предложении WHERE для идентификации удаляемых строк. Поясним сказанное на примере.
Пусть требуется удалить те модели ПК из таблицы Product, для которых нет соответствующих строк в таблице PC.
Используя стандартный синтаксис, эту задачу можно решить следующим запросом:
Заметим, что предикат type = ‘pc’ необходим здесь, чтобы не были удалены также модели принтеров и портативных компьютеров.
Эту же задачу можно решить с помощью дополнительного предложения FROM следующим образом:
Здесь применяется внешнее соединение, в результате чего столбец PC.model для моделей ПК, отсутствующих в таблице PC, будет содержать NULL -значение, что и используется для идентификации подлежащих удалению строк.
| Страницы: | 1 | 2 | 3 |
Как массово очистить все таблицы сразу в MsSql?
Всем привет!
Как массово очистить все таблицы сразу в MsSql?
Чтобы каждой таблице не писать truncate table.
- Вопрос задан более трёх лет назад
- 1644 просмотра
Комментировать
Решения вопроса 0
Ответы на вопрос 3

Кнопконажиматель и припоерасплавлятель
Что то типа такого:
declare @s nvarchar(max) = '' select @s = @s + 'truncate table '+TABLE_NAME+';' from INFORMATION_SCHEMA.TABLES exec (@s)
Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать
Готовые решения — не подаю, но.
Дурацкий, но «бронебойный» вариант:
DECLARE @execute_cmd varchar(max)= ''; -- выбрать один из трех вариантов по вкусу --SELECT @execute_cmd = @execute_cmd+'begin try truncate table ['+name+'] end try begin catch end catch ' FROM sys.tables WHERE type_desc = 'USER_TABLE'; --SELECT @execute_cmd = @execute_cmd+'begin try truncate table ['+TABLE_NAME+'] end try begin catch end catch ' FROM information_schema.tables WHERE TABLE_TYPE = 'BASE TABLE'; --SELECT @execute_cmd = @execute_cmd+'begin try truncate table ['+Name+'] end try begin catch end catch ' FROM dbo.sysobjects WHERE xtype = 'U'; EXECUTE @execute_cmd;
и потом многократно «долбить» последнюю строку.
ибо foreign key и просто так удалить таблицу, на которую ссылаются данные из другой таблицы — не вариант
Удаление таблиц (компонент Database Engine)
Вы можете удалить таблицу из базы данных в SQL Server с помощью SQL Server Management Studio или Transact-SQL.
Каждое удаление таблицы следует тщательно планировать. Если на таблицу ссылаются существующие запросы, представления, определяемые пользователем функции, хранимые процедуры или программы, то удаление сделает эти объекты недействительными.
В этом разделе
- Перед началом работыОграниченияБезопасность
- Удаление таблицы с помощью следующих средств:Среда SQL Server Management StudioTransact-SQL
Перед началом
Ограничения
- Инструкцию DROP TABLE нельзя использовать для удаления таблицы, на которую ссылается ограничение FOREIGN KEY. Сначала следует удалить ссылающееся ограничение FOREIGN KEY или ссылающуюся таблицу. Если и ссылающаяся таблица, и таблица, содержащая первичный ключ, удаляются с помощью одной инструкции DROP TABLE, ссылающаяся таблица должна быть первой в списке.
- При удалении таблицы относящиеся к ней правила и значения по умолчанию теряют привязку, а любые связанные с таблицей ограничения или триггеры автоматически удаляются. Если таблица будет создана заново, нужно будет заново привязать все правила и значения по умолчанию, заново создать триггеры и добавить необходимые ограничения.
- При удалении таблицы, которая содержит столбец varbinary (max) с атрибутом FILESTREAM, не будут удалены никакие данные, которые хранятся в файловой системе.
- Инструкции DROP TABLE и CREATE TABLE нельзя выполнять для одной таблицы в одном пакете. В противном случае может произойти непредвиденная ошибка.
- Любые представления или хранимые процедуры, которые ссылаются на удаляемую таблицу, необходимо явно удалить или изменить, чтобы убрать ссылку на таблицу.
Безопасность
Разрешения
Необходимо разрешение ALTER на схему, к которой принадлежит эта таблица, разрешение CONTROL для этой таблицы или членство в предопределенной роли базы данных db_ddladmin .
Использование среды SQL Server Management Studio
Удаление таблицы из базы данных
- В обозревателе объектов выберите таблицу, которую необходимо удалить.
- Щелкните таблицу правой кнопкой мыши и в контекстном меню выберите Удалить .
- Появится окно подтверждения удаления. Нажмите кнопку Да.
Примечание При удалении таблицы автоматически удаляются все связи с ней.
Использование Transact-SQL
Удаление таблицы в редакторе запросов
- В обозревателе объектовподключитесь к экземпляру компонента Компонент Database Engine.
- На стандартной панели выберите пункт Создать запрос.
- Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить.
DROP TABLE dbo.PurchaseOrderDetail;
Дополнительные сведения см. в разделе DROP TABLE (Transact-SQL)