如何显示来自多个数据库的所有表

时间:2010-06-12 07:22:15

标签: mysql mysql-management

如何从mySql中的多个数据库中选择所有表.. 我正在执行以下步骤,但无法实现目标。

<?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 '</pre>';
$nq = "USE $k->Database";//trying to select the individual database
$newda = $wpdb->get_results($nq);
$alld = "SELECT * FROM $k->Database";
$td = $wpdb->get_results($alld);
var_dump($td);//returns empty array
}
?>

请帮帮我

5 个答案:

答案 0 :(得分:34)

使用INFORMATION_SCHEMA

select table_schema, table_name from information_schema.tables;

答案 1 :(得分:12)

更好:

在一个SQL语句中显示所有数据库中的所有表(内部mysql数据库除外)。

SELECT table_schema, table_name FROM information_schema.tables WHERE table_schema NOT IN ( 'information_schema', 'performance_schema', 'mysql' )

答案 2 :(得分:8)

你做不到

SELECT * FROM database

但你可以做到

USE DATEBASE;
SHOW TABLES;

甚至更好:

SHOW TABLES IN database

答案 3 :(得分:0)

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

这取决于你有一个文件~/.my.cnf,其中包含以下内容:

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

答案 4 :(得分:0)

我会为此:

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