我正在尝试学习我不熟悉的mysql数据库的结构.我使用mysql已经好几年了.
我正在寻找一种方法来打印此数据库中所有表的所有字段.目前,我正在使用
Show Fields from <insert table name>
Run Code Online (Sandbox Code Playgroud)
然而,这种缓慢而笨重.有更快的方法吗?
要查看特定数据库的所有表(如mydb),请执行以下操作:
USE mydb
SHOW TABLES;
Run Code Online (Sandbox Code Playgroud)
要查看 中的所有字段、索引、存储引擎、表选项、分区布局mydb.mytable,请执行以下操作:
USE mydb
SHOW CREATE TABLE tblname\G
Run Code Online (Sandbox Code Playgroud)
要批量查看所有数据库中的所有表,这里有一个脚本:
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
Run Code Online (Sandbox Code Playgroud)
如果您想查看特定的数据库(如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
Run Code Online (Sandbox Code Playgroud)
这应该是最快的方法,因为如果有很多繁忙的 InnoDB 表,访问 information_schema 数据库可能会有点慢。
试一试 !!!