首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在MySQL中使用SELECT语句获取表名

在MySQL中使用SELECT语句获取表名
EN

Stack Overflow用户
提问于 2011-12-01 07:25:54
回答 13查看 620.7K关注 0票数 314

在MySQL中,我知道可以用以下命令列出数据库中的表:

代码语言:javascript
复制
SHOW TABLES

但是,我想将这些表名插入到另一个表中,例如:

代码语言:javascript
复制
INSERT INTO metadata(table_name) SHOW TABLES /* does not work */

有没有一种方法可以使用标准的SELECT语句来获取表名,例如:

代码语言:javascript
复制
INSERT INTO metadata(table_name) SELECT name FROM table_names /* what should table_names be? */
EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2014-11-19 02:54:36

要获取所有表的名称,请使用:

代码语言:javascript
复制
SELECT table_name FROM information_schema.tables;

要从特定数据库中获取表的名称,请使用:

代码语言:javascript
复制
SELECT table_name FROM information_schema.tables
WHERE table_schema = 'your_database_name';

现在,要回答原始问题,请使用以下查询:

代码语言:javascript
复制
INSERT INTO table_name
    SELECT table_name FROM information_schema.tables
        WHERE table_schema = 'your_database_name';

有关详细信息,请参阅:http://dev.mysql.com/doc/refman/5.0/en/information-schema.html

票数 471
EN

Stack Overflow用户

发布于 2011-12-01 07:31:28

尝试:

代码语言:javascript
复制
select * from information_schema.tables

请参阅:http://dev.mysql.com/doc/refman/5.0/en/information-schema.html

票数 148
EN

Stack Overflow用户

发布于 2015-05-03 00:38:47

如果我们有多个数据库,并且需要为特定数据库选择所有表,我们可以使用TABLE_SCHEMA将数据库名称定义为:

select table_name from information_schema.tables where TABLE_SCHEMA='dbname';

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8334493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档