Om alle tabellen van een specifieke database te zien (zoals mydb
), doe dit:
USE mydb
SHOW TABLES;
Om alle velden, indexen, opslagengine, tabelopties, partitielay-out in mydb.mytable
te zien , doe dit:
USE mydb
SHOW CREATE TABLE tblname\G
Om alle tabellen in alle databases in bulk te zien, is hier een 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
Als u een specifieke database wilt zien (zoals mydb
), doe dit:
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
Dit zou de snelste manier moeten zijn, omdat toegang tot de information_schema-database wat traag kan zijn als er veel drukke InnoDB-tabellen zijn.
Probeer het eens !!!