我的MySQL数据库包含几个使用不同存储引擎的表 (特别是myisam和innodb)。我怎么知道是哪几张桌子呢 使用哪个引擎?
当前回答
SHOW TABLE STATUS WHERE Name = 'xxx'
这将为您提供一个Engine列(以及其他内容),这就是您想要的。
其他回答
SHOW CREATE TABLE <tablename>\G
它的格式会比输出更好吗
SHOW CREATE TABLE <tablename>;
\G技巧对于许多其他查询/命令也很有用。
如果你是一个GUI的家伙,只是想在PhpMyAdmin中找到它,然后选择你选择的表,并在操作选项卡>>表选项>>存储引擎。 您甚至可以从那里使用下拉选项列表更改它。
PS:本指南基于PhpMyAdmin的4.8版本。不能保证非常旧的版本有相同的路径。
要显示数据库中所有表及其引擎的列表,使用下面的SQL查询:
SELECT TABLE_NAME,
ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'dbname';
将dbname替换为数据库名称。
还有另一种方法,可能是获取单个或匹配的表集状态的最短方法:
SHOW TABLE STATUS LIKE 'table';
然后你可以使用LIKE操作符,例如:
SHOW TABLE STATUS LIKE 'field_data_%';
除了前面的例子外,你还可以从information_schema db中通过标准查询得到如下信息:
use information_schema;
select NAME from INNODB_TABLES where NAME like "db_name%";
推荐文章
- 我如何得到“id”后插入到MySQL数据库与Python?
- MySQL工作台:如何保持连接活动
- 'create_date'时间戳字段的默认值无效
- 我可以从一个完整的mysql mysqldump文件恢复一个表吗?
- 计数在VARCHAR字段中字符串的出现次数?
- 修改一个MySQL列为AUTO_INCREMENT
- 在ROR迁移期间,将列类型从Date更改为DateTime
- 如何删除所有MySQL表从命令行没有DROP数据库权限?
- 从主机连接到docker容器中的mysql
- 如果任何字段包含NULL, MySQL CONCAT将返回NULL
- MySQL中的字符串连接
- Laravel未知列'updated_at'
- MySQL更新内部连接表查询
- 根据查询结果设置用户变量
- 不能删除外键约束中需要的索引