sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo imprimo todos los campos para todas las tablas en la base de datos mysql?

Para ver todas las tablas de una base de datos específica (como mydb ), haz esto:

USE mydb
SHOW TABLES;

Para ver todos los campos, índices, motor de almacenamiento, opciones de tabla, diseño de partición en mydb.mytable , haz esto:

USE mydb
SHOW CREATE TABLE tblname\G

Para ver todas las tablas en todas las bases de datos de forma masiva, aquí hay un script:

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

Si desea ver una base de datos específica (como mydb ), haz esto:

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

Esta debería ser la forma más rápida porque acceder a la base de datos information_schema puede ser algo lento si hay muchas tablas InnoDB ocupadas.

Pruébalo !!!