繁体   English   中英

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

[英]How do I print all fields for all tables in mysql database?

我正在尝试学习我不熟悉的mysql数据库的结构。 我使用mysql已经好几年了。

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

Show Fields from <insert table name>

然而,这种缓慢而笨重。 有更快的方法吗?

这是MySQL在线参考的链接。 它是所有MySQL问题的goto资源。

要列出数据库中的所有列,请执行以下操作的变体:

select * from information_schema.columns order by table_schema, table_name, column_name

第20节介绍了Information_schema。 20.4涵盖了列表。

要查看特定数据库的所有表(如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数据库会有点慢。

试试看 !!!

SELECT TABLE_NAME,COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='test'

将“test”更改为数据库的名称。 它必须以root用户或具有读取information_schema表的权限的用户身份运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM