![](/img/trans.png)
[英]How can I replace a string in a MySQL database for all tables in all fields in all rows?
[英]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.