3

よく知らない mysql データベースの構造を学ぼうとしています。mysql を使用してから何年も経ちます。

このデータベース内のすべてのテーブルのすべてのフィールドを印刷する方法を探しています。現時点では、私は使用しています

Show Fields from <insert table name>

ただし、これは遅くて不格好です。もっと速い方法はありますか?

4

3 に答える 3

5

これは、 MySQL オンライン リファレンスへのリンクです。これは、MySQL に関するすべての質問に対応する goto リソースです。

データベース内のすべての列を一覧表示するには、次のバリエーションを実行します。

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

セクション 20 では、Information_schema について説明します。20.4 は列テーブルをカバーしています。

于 2013-05-31T14:51:59.723 に答える
5

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 データベースへのアクセスが多少遅くなる可能性があるため、これが最も速い方法です。

試してみる !!!

于 2013-05-31T14:47:30.063 に答える