我的MySQL数据库包含几个使用不同存储引擎的表 (特别是myisam和innodb)。我怎么知道是哪几张桌子呢 使用哪个引擎?
当前回答
对Jocker的回复做了一点调整(我想作为评论发布,但我还没有足够的因果报应):
SELECT TABLE_NAME, ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database' AND ENGINE IS NOT NULL;
这将MySQL视图从列表中排除,因为它没有引擎。
其他回答
SHOW CREATE TABLE <tablename>;
可解析性较差,但可读性比SHOW TABLE STATUS强。
或者运行这个:
show table status;
这将列出数据库上的所有表和相关详细信息。
SHOW CREATE TABLE <tablename>\G
它的格式会比输出更好吗
SHOW CREATE TABLE <tablename>;
\G技巧对于许多其他查询/命令也很有用。
要显示数据库中所有表及其引擎的列表,使用下面的SQL查询:
SELECT TABLE_NAME,
ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'dbname';
将dbname替换为数据库名称。
显示数据库表状态;
它将列出上述数据库中的所有表。 示例输出
显示name=your_desired_table_name表状态;
它将显示上述表使用的存储引擎。
推荐文章
- MySQL对重复键更新在一个查询中插入多行
- mysql_connect():[2002]没有这样的文件或目录(试图通过unix:///tmp/mysql.sock连接)在
- MySQL:如何复制行,但改变几个字段?
- 不能删除或更新父行:外键约束失败
- Mysql错误1452:不能添加或更新子行:外键约束失败
- MySQL DISTINCT在GROUP_CONCAT()上
- 第一次设计数据库:我是否过度设计了?
- MySQL选择一个列DISTINCT,与其他列相对应
- 错误1022 -不能写;表中重复的键
- 如何修改列和更改默认值?
- 如何在MySQL 8.0中授予root用户所有权限
- mysqld_safe UNIX套接字文件目录“/var/run/mysqld”不存在
- 配置系统初始化失败
- 快速简单的方法迁移SQLite3到MySQL?
- 用MySQL计算中位数的简单方法