sql >> Databasteknik >  >> RDS >> Mysql

Hur skriver jag ut alla fält för alla tabeller i mysql-databasen?

För att se alla tabeller i en specifik databas (som mydb ), gör så här:

USE mydb
SHOW TABLES;

För att se alla fält, index, lagringsmotor, tabellalternativ, partitionslayout i mydb.mytable , gör så här:

USE mydb
SHOW CREATE TABLE tblname\G

För att se alla tabeller i alla databaser i bulk, här är ett skript:

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

Om du vill se en specifik databas (som mydb ), gör så här:

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

Detta borde vara det snabbaste sättet eftersom åtkomst till informationsschemadatabasen kan vara något långsam om det finns många upptagna InnoDB-tabeller.

Ge det ett försök !!!



  1. Knee-Jerk Wait Statistik:SOS_SCHEDULER_YIELD

  2. MySQL okänt kolumnfel när du använder ALTER, förstår inte beteendet

  3. Varför ser jag SAMMANSTÄLLNING "xxx" är inte giltig för TECKENSET "ååå"

  4. 2 sätt att returnera rader som endast innehåller alfanumeriska tecken i MariaDB