Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Удаление нескольких таблиц одним выстрелом в MySQL

Автор вопроса: KrunalОтветов: 3

Как удалить несколько таблиц из одной базы данных одной командой. что-то типа,

> use test;
> drop table a,b,c;

где a,b,c - таблицы из теста базы данных.

  • ты уже сам себе ответил ajreal 07.02.2011
  • согласно приведенным ниже ответам, в HeidiSQL вы можете фильтровать таблицы по их имени (верхнее текстовое поле), писать DROP TABLE в запрос и дважды щелкать каждую нужную таблицу, чтобы добавить ее имя к запросу (поставить запятую между ними), затем нажать F9 для выполнения . Немного не по теме, но за этим сюда. Ivan Ferrer Villa 21.02.2017
  • Для людей, желающих удалить несколько таблиц с одним и тем же префиксом, поскольку DROP TABLE table_prefix_* не работает со звездочкой: stackoverflow.com/questions/6758652/ baptx 20.04.2020

sqlmultiple-tablesdrop-table

Ответы

Ответ 1 · рейтинг 164 · Leniel Maccaferri

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

DROP TABLE IF EXISTS B,C,A;

Это можно поместить в начало скрипта вместо того, чтобы удалять каждую таблицу по отдельности.

Ответ 2 · рейтинг 88 · OrangeDog

SET foreign_key_checks = 0;
DROP TABLE IF EXISTS a,b,c;
SET foreign_key_checks = 1;

Тогда вам не нужно беспокоиться ни о том, чтобы отбросить их в правильном порядке, ни о том, существуют ли они на самом деле.

Н.Б. это только для MySQL (как в вопросе). Другие базы данных, вероятно, имеют другие методы для этого.

Ответ 3 · Javaughn Jackson

Ленивый способ сделать это, если нужно удалить много таблиц.

  1. Получить таблицу, используя ниже

    • For sql server - SELECT CONCAT(name,',') Table_Name FROM SYS.tables;
    • Для устного использования - SELECT CONCAT(TABLE_NAME,',') FROM SYS.ALL_TABLES;
  2. Скопируйте и вставьте имена таблиц из набора результатов и вставьте их после команды DROP.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы