AnalyticDB for MySQL のメタデータベースは NIFORMATION_SCHEMA データベースであり、MySQL メタデータベースと互換性があります。メタデータベースをクエリするには、AnalyticDB for MySQL クラスタへの Java Database Connectivity ( JDBC ) 接続を確立した後に、SQL 文を実行します。たとえば、test データベース(スキーマ)内のすべてのテーブルをクエリするには、次の SQL 文を実行します。
select * from TABLES where table_schema='test'SCHEMATA
INFORMATION_SCHEMA.SCHEMATA テーブルは、データベースに関する情報を提供します。
フィールド | 型 | NULL 値の許容 | デフォルト | 説明 |
CATALOG_NAME | varchar(16) | はい | NULL | カタログの名前。 |
SCHEMA_NAME | varchar(64) | いいえ | NULL | スキーマの名前。 |
DEFAULT_CHARACTER_SET_NAME | varchar(64) | はい | UTF-8 | デフォルトの文字セット。 |
DEFAULT_COLLATION_NAME | varchar(64) | はい | OFF | デフォルトの照合順序。 |
SQL_PATH | varchar(255) | はい | NULL | SQL パス。 |
TABLES
INFORMATION_SCHEMA.TABLES テーブルは、データベーステーブルに関する情報を提供します。データには、テーブルのメタデータと、パーティション情報などの特定のテーブルの対応するデータが含まれます。
フィールド | 型 | NULL 値の許容 | デフォルト | 説明 |
TABLE_CATALOG | varchar(512) | いいえ | def | 値は「def」に固定されています。 |
TABLE_SCHEMA | varchar(64) | いいえ | なし | スキーマの名前。 |
TABLE_NAME | varchar(64) | いいえ | なし | テーブルの名前。 |
TABLE_TYPE | varchar(64) | はい | NULL | テーブルのタイプ。有効な値:PARTITION_TABLE(パーティションテーブルを示す)および DIMENSION_TABLE(レプリケートされたテーブルを示す)。 |
ENGINE | varchar(64) | はい | NULL | エンジンの種類。 |
VERSION | bigint(21) | はい | NULL | テーブル ID。 |
ROW_FORMAT | varchar(20) | はい | NULL | 値は「Compact」に固定されています。 |
TABLE_ROWS | bigint(21) | はい | NULL | レコード数。 |
AVG_ROW_LENGTH | bigint(21) | はい | NULL | このフィールドは使用されておらず、デフォルト値は NULL です。 |
DATA_LENGTH | bigint(21) | はい | NULL | データサイズ。 |
MAX_DATA_LENGTH | bigint(21) | はい | NULL | このフィールドは使用されておらず、デフォルト値は NULL です。 |
INDEX_LENGTH | bigint(21) | はい | NULL | インデックスサイズ。 |
DATA_FREE | bigint(21) | はい | NULL | このフィールドは使用されておらず、デフォルト値は NULL です。 |
AUTO_INCREMENT | bigint(21) | はい | NULL | テーブルの自動インクリメント値。このフィールドは使用されておらず、デフォルト値は NULL です。 |
CREATE_TIME | datetime | はい | NULL | 作成時間。 |
UPDATE_TIME | datetime | はい | NULL | 更新時間。 |
CHECK_TIME | datetime | はい | NULL | このフィールドは使用されておらず、デフォルト値は NULL です。 |
TABLE_COLLATION | varchar(32) | はい | NULL | 値は「utf8_bin」に固定されています。 |
CHECKSUM | bigint(21) | はい | NULL | このフィールドは使用されておらず、デフォルト値は NULL です。 |
CREATE_OPTIONS | varchar(255) | はい | NULL | このフィールドは使用されておらず、デフォルト値は NULL です。 |
TABLE_COMMENT | varchar(255) | はい | NULL | テーブルのコメント。 |
テーブルの名前がわからないが、特定のスキーマ内のさまざまな種類のテーブルを知りたい場合は、INFORMATION_SCHEMA.TABLES テーブルをクエリできます。構文:
SELECT DISTINCT TABLE_CATALOG, TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA = 'xxx';特定のスキーマ内のビューを知りたい場合は、INFORMATION_SCHEMA.TABLES テーブルをクエリできます。構文:
SELECT TABLE_CATALOG, TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA = 'xxx' AND TABLE_TYPE = 'VIEW';
COLUMNS
INFORMATION_SCHEMA.COLUMNS テーブルには、テーブル内のすべてのフィールドの詳細が格納されます。
フィールド | 型 | NULL 値の許容 | デフォルト | 説明 |
TABLE_CATALOG | varchar(8) | はい | NULL | 列を含むテーブルが属するカタログの名前。 |
TABLE_SCHEMA | varchar(64) | いいえ | NULL | 列を含むテーブルが属するスキーマ(データベース)の名前。 |
TABLE_NAME | varchar(64) | いいえ | NULL | 列を含むテーブルの名前。 |
COLUMN_NAME | varchar(64) | いいえ | NULL | 列の名前。 |
ORDINAL_POSITION | bigint(21) | はい | NULL | テーブル内での列の位置。 |
COLUMN_DEFAULT | varchar(255) | はい | NULL | 列のデフォルト値。 |
IS_NULLABLE | tinyint(1) | はい | 1 | 列を空にすることができるかどうかを示します。 |
DATA_TYPE | bigint(21) | はい | NULL | 列のデータ型。 |
CHARACTER_MAXIMUM_LENGTH | bigint(21) | はい | NULL | 列が文字列列の場合、文字の最大長。 |
CHARACTER_OCTET_LENGTH | bigint(21) | はい | NULL | 列が文字列列の場合、バイト単位の最大長。 |
NUMERIC_PRECISION | int(11) | はい | NULL | 列が数値列の場合、数値精度。 |
NUMERIC_SCALE | bigint(21) | はい | NULL | 列が数値列の場合、数値スケール。 |
DATETIME_PRECISION | bigint(21) | はい | NULL | 列が時間列の場合、時間精度。 |
CHARACTER_SET_NAME | varchar(32) | はい | NULL | 列が文字列型の列である場合の文字セットの名前。 |
照合順序名 | varchar(32) | はい | NULL | 列が文字列型の列である場合の、照合順序の名前。 |
列の型 | varchar(64) | はい | NULL | 列のデータ型。 |
COLUMN_KEY | varchar(3) | いいえ | NULL | インデックスタイプ。 |
追加 | varchar(30) | いいえ | NULL | 列に関する追加情報です。 値は、特定のケースでは更新時に CURRENT_TIMESTAMP になる可能性があります。 |
権限 | varchar(80) | いいえ | NULL | 列に対する権限。値は select、insert、update、および references に固定されています。 |
列コメント | varchar(1024) | はい | 1024 | 列に関するコメント。 |
テーブル内のすべてのカラムを知りたい場合は、TABLE_SCHEMA と TABLE_NAME に基づいて必要なカラムをクエリできます。
よくある質問
INFORMATION_SCHEMA.TABLES テーブルの UPDATE_TIME フィールドが、テーブルを変更した直後に更新されないのはなぜですか?
AnalyticDB for MySQL は、テーブルのスキーマを変更するために ALTER TABLE 文を実行した後にのみ、UPDATE_TIME フィールドを更新します。