You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

MySQL 3无information_schema,求替代SELECT * FROM INFORMATION_SCHEMA.TABLES的查询

替代MySQL 3.x获取表信息的方案

嘿,刚好对MySQL 3.x这个古董版本有点经验,这就给你说几个能替代SELECT * FROM INFORMATION_SCHEMA.TABLES的实用方法:

1. 用SQL命令直接查询

MySQL 3.x虽然没有information_schema,但提供了专门的SHOW命令来获取表信息:

  • 仅获取表名:如果只需要列出当前数据库下的所有非系统表名称,这个命令最直接(系统表比如mysql库下的内容不会显示,除非你主动切换到对应系统库):

    SHOW TABLES;
    

    要是想指定某个数据库的表,不用切换库可以这么写:

    SHOW TABLES FROM your_database_name;
    
  • 获取表的详细状态信息:这个命令返回的内容和INFORMATION_SCHEMA.TABLES的核心字段对应,包括表引擎、行数、创建时间、数据大小等关键信息:

    SHOW TABLE STATUS;
    

    指定数据库的话:

    SHOW TABLE STATUS FROM your_database_name;
    

    注意:这个命令返回的字段和新版本MySQL会有一些差异,比如没有TABLE_SCHEMA字段,因为查询范围是你指定的单个数据库。

2. 用命令行工具mysqlshow

如果是在终端操作,还可以用MySQL自带的mysqlshow客户端工具,它能直接列出指定数据库的表,加上参数还能查看表状态:

  • 列出指定库的所有表:
    mysqlshow -u your_username -p your_database_name
    
  • 查看表的详细状态:
    mysqlshow -u your_username -p --status your_database_name
    
    输入命令后会提示你输入密码,验证后就能看到结果。

补充说明

MySQL 3.x没有跨库查询所有表的统一SQL接口,所以如果要遍历所有数据库的表,得先执行SHOW DATABASES拿到所有库名,然后逐个切换库执行上面的SHOW TABLESSHOW TABLE STATUS命令。

内容的提问来源于stack exchange,提问作者Joe kardin

火山引擎 最新活动