Как показать все таблицы из нескольких баз данных - PullRequest
15 голосов
/ 12 июня 2010

Как выбрать все таблицы из нескольких баз данных в mySql .. Я делаю следующие шаги, но не могу достичь цели.

<code><?php
$a = "SHOW DATABASES";
$da = $wpdb->get_results($a);

foreach($da as $k){
echo '<pre>';
print_r ($k->Database);//prints all the available databases
echo '
'; $ nq = "USE $ k-> Database"; // пытаемся выбрать отдельную базу данных $ newda = $ wpdb-> get_results ($ nq); $ alld = "SELECT * FROM $ k-> База данных"; $ td = $ wpdb-> get_results ($ alld); var_dump ($ td); // возвращает пустой массив } ?>

Пожалуйста, помогите мне

Ответы [ 5 ]

34 голосов
/ 12 июня 2010

Используйте INFORMATION_SCHEMA :

select table_schema, table_name from information_schema.tables;
12 голосов
/ 02 июня 2013

Еще лучше:

Показать все таблицы во всех базах данных (кроме внутренних баз данных mysql) в одном операторе SQL.

8 голосов
/ 12 июня 2010

Вы не можете сделать

SELECT * FROM database

, но вы можете сделать

USE DATEBASE;
SHOW TABLES;

или даже лучше:

SHOW TABLES IN database
0 голосов
/ 11 января 2019

Я бы пошел на это:

mysql -e "select table_schema, table_name from information_schema.tables;" | \
    grep -Pv '^(sys|performance_schema|TABLE_SCHEMA|mysql|information_schema)' | \
    perl -pe 's/\s+/./' | \
    sort -u
0 голосов
/ 28 мая 2017

mysql -e'select table_schema, table_name from information_schema.tables;'

Это зависит от наличия у вас файла ~/.my.cnf со следующим содержимым:

[client]
user=ADMINUSER     ## set user, usually 'root' 
password=PASSWORD  ## set password
...