mysql - 如何打印 mysql 数据库中所有表的所有字段?

标签 mysql database

我正在尝试学习我不熟悉的 mysql 数据库的结构。好多年没用mysql了。

我正在寻找一种方法来打印此数据库中所有表的所有字段。目前,我正在使用

Show Fields from <insert table name>

但是,这个又慢又笨重。有没有更快的方法?

最佳答案

要查看特定数据库(如 mydb)的所有表,请执行以下操作:

USE mydb
SHOW TABLES;

要查看 mydb.mytable 中的所有字段、索引、存储引擎、表选项、分区布局,请执行以下操作:

USE mydb
SHOW CREATE TABLE tblname\G

要批量查看所有数据库中的所有表,这里有一个脚本:

MYSQL_USER=root
MYSQL_PASS=rootpassword
MYSQL_CONN="-u${MYSQL} -p${MYSQL_PASS}"
MYSQLDUMP_OPTIONS="--routines --triggers --no-data --all-databases"
mysqldump ${MYSQL_CONN} ${MYSQLDUMP_OPTIONS} > MySQLSchema.sql
less MySQLSchema.sql

如果您想查看特定数据库(如 mydb),请执行以下操作:

MYSQL_USER=root
MYSQL_PASS=rootpassword
MYSQL_CONN="-u${MYSQL} -p${MYSQL_PASS}"
DBTOSHOW=mydb
MYSQLDUMP_OPTIONS="--routines --triggers --no-data --databases ${DBTOSHOW}"
mysqldump ${MYSQL_CONN} ${MYSQLDUMP_OPTIONS} > MySQLSchema.sql
less MySQLSchema.sql

这应该是最快的方法,因为如果有很多繁忙的 InnoDB 表,访问 information_schema 数据库可能会有点慢。

试一试!!!

关于mysql - 如何打印 mysql 数据库中所有表的所有字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16859949/

相关文章:

mysql - 加入表中两个不同字段的选择数据

node.js - 在 Mongoose 中为对象数组创建索引

sql-server - access和sql server实时同步

mysql - 优化 MySql 查询 - avg() 与内连接花费更多时间

php - 从 MySQL 数据库中删除一条记录

javascript - PHP MySQL 考勤 - 如何限制时间(一天一次)

java - 带有 hibernate 条件 API 的 MySQL 中的 Orderby Timestamp 列抛出错误

C 逐字读取

php - 可以想办法得到这个查询

php - 使用 PDO::quote() 还会被黑客攻击吗?