在MySQL中,我知道我可以在数据库中列出表:
SHOW TABLES
但是,我想将这些表名插入另一个表中,例如:
INSERT INTO metadata(table_name) SHOW TABLES /* does not work */
有没有办法使用标准的SELECT语句获取表名,如:
INSERT INTO metadata(table_name) SELECT name FROM table_names /* what should table_names be? */
11 回答
我想你可以从INFORMATION_SCHEMA TABLES获得你想要的数据 .
你可以在这里找到更多信息:http://dev.mysql.com/doc/refman/5.0/en/tables-table.html
尝试:
见:http://dev.mysql.com/doc/refman/5.0/en/information-schema.html
如果我们有多个数据库并且我们需要为特定数据库选择所有表,我们可以使用
TABLE_SCHEMA
将数据库名称定义为:select table_name from information_schema.tables where TABLE_SCHEMA='dbname';
除了使用INFORMATION_SCHEMA表之外,要使用SHOW TABLES插入表中,您将使用以下内容
看一下数据库
information_schema
中的表TABLES
. 它包含有关其他数据库中的表的信息 . 但是如果你有权访问它 .要获取所有表的名称,请使用:
要从特定数据库获取表的名称,请使用:
现在,要回答原始问题,请使用以下查询:
有关详细信息,请参阅:http://dev.mysql.com/doc/refman/5.0/en/information-schema.html
MySQL
INFORMATION_SCHEMA.TABLES
表包含有关两个表(不是临时表但是永久表)和视图的数据 . 列TABLE_TYPE
定义这是表还是视图的记录(对于表TABLE_TYPE='BASE TABLE'
和对于视图TABLE_TYPE='VIEW'
) . 因此,如果您想从模式(数据库)表中查看,则只有以下查询:还有另一种更简单的方法来获取表名
我认为指出如果你想选择包含特定单词的表格可以很方便,你可以使用
SELECT
(而不是SHOW
)轻松完成 . 下面的查询很容易将搜索范围缩小到包含"keyword"的表格要插入,更新和删除,请执行以下操作: