2014-10-20 3 views
1

Мне нужно манипулировать таблицами в моих базах данных. Я нашел этот учебник по адресу w3schools.com, который замечательный, но он касается только манипулирования данными внутри одной таблицы, но мне нужен учебник для управления таблицами, а не данными внутри них.Управление таблицами в mysql по командной строке

Вот что я имею в виду манипулирования таблиц:

  1. Удалить все таблицы, которые начинаются с определенным префиксом

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

  3. Вы можете отредактировать этот список (и, соответственно, список в принятом ответе), чтобы мы могли сделать этот хороший учебный ресурс.

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

ответ

1

Я обычно использую SQL, чтобы написать следующий запрос, например

SELECT 
    CONCAT('DROP ', GROUP_CONCAT(table_name)) 
FROM 
    information_schema.tables 
WHERE table_schema = 'database' 
    AND table_name LIKE 'prefix%' 

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

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

SELECT 
    CONCAT('RENAME TABLE ', GROUP_CONCAT(CONCAT('database.',table_name, ' TO new.', table_name))) 
FROM 
    information_schema.tables 
WHERE table_schema = 'database' 
    AND table_name LIKE 'prefix%' 

Более старые версии MySQL, возможно, потребуется запускать это первый

SET SESSION group_concat_max_len=9999999999; 

или какой-либо другой большое количество