Подтвердить что ты не робот

Как я могу описать все таблицы в базе данных через один оператор?

Есть ли инструкция, которая может описывать все таблицы в базе данных?

Что-то вроде этого:

describe * from myDB;
4b9b3361

Ответ 1

Нет инструкции, что describe все таблицы сразу. Но вы можете сделать что-то вроде этого:

SELECT * FROM information_schema.columns WHERE table_schema = 'db_name';

Ответ 2

потому что другие предложения очень сильно помешали на экране или просто не сделали трюк, вот взлом для маленького db:

describe table_a; describe table_b; describe table_c; 

и т.д.

Ответ 3

Я использую linux-путь. Сначала создайте файл ~/.my.cnf, чтобы сохранить имя пользователя и пароль для mysql. Затем используйте нижеприведенный фрагмент и запустите его в терминале linux.

Создайте список таблиц и фильтруйте заголовок и awk для генерации столбца. Затем используйте тот же метод для DESC table_name.

for i in $(mysql MYDBNAME -e 'SHOW TABLES' | grep -v "Tables_in" | awk '{print $1}'); do echo "TABLE: $i"; mysql MYDBNAME -e "DESC $i"; done

Надеюсь, это поможет.

Ответ 4

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

Подключиться к базе данных: mysql [-u имя_пользователя] [-h имя_хоста] имя-базы данных

Чтобы перечислить все базы данных, введите в командной строке MySQL: показать базы данных

Затем выберите нужную базу данных: используйте MyDB;

Список всех таблиц в базе данных: показать таблицы;

Опишите таблицу: desc table-name или описать имя таблицы

Ответ 5

mysql -B -N -u root -pPASSWORD -h somehost \
-e "SELECT DISTINCT CONCAT('describe ', table_name, ';') AS query FROM information_schema.tables WHERE table_schema='DATABASE_NAME_HERE' " | \
mysql -B -N -u root -pPASSWORD -h somehost DATABASE_NAME_HERE