2016-11-10 3 views
0

Я пытаюсь отобразить структуры таблиц нескольких таблиц MySQL (например, список столбцов в таблицу), которая соответствует определенной строке, какдисплея Структура таблицы из нескольких таблиц MySQL

SHOW CREATE TABLE TABLE_NAME LIKE '%CATEGORY%'

Я сделал это, но это не делает показать структуру таблицы.

`select * from `information_schema`.`tables` 
    where table_name like 'category%' AND TABLE_SCHEMA = 'DB_name'` 

Благодаря

ответ

0

Чтобы получить полную структуру таблицы, вы должны запросить много таблиц в INFORMATION_SCHEMA, а не только TABLES. ТАБЛИЦЫ содержат только атрибуты таблицы, а не ее столбцы, индексы или ограничения.

Нет таблицы INFORMATION_SCHEMA, которая показывает полный оператор CREATE TABLE, такой как SHOW CREATE TABLE.

SHOW CREATE TABLE принимает только одно имя таблицы в качестве аргумента.

Самым простым решением было бы получить список таблиц, которые соответствуют вашей схеме:

select table_name from `information_schema`.`tables` 
where table_name like 'category%' AND TABLE_SCHEMA = 'DB_name' 

А потом принести результаты этого запроса в цикле, и запустить SHOW CREATE TABLE DBName.<table_name> для каждой таблицы, возвращаемой запросом ,

+0

Проблема в том, что у меня много таблиц с таким именем, поэтому я искал любой метод, возможно, цикл, который может отображать этот результат за один раз. Что-то вроде 'WhileLoop() BEGIN DECLARE table_name VARCHAR (100); SET table_name = 'category'; WHILE table_name LIKE 'category%' DO 'Получить имена таблиц и' END WHILE; ' –

+0

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

Смежные вопросы