MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む
このページは機械翻訳したものです。
INNODB_VIRTUAL
テーブルは、InnoDB
virtual generated columns および仮想生成カラムのベースとなるカラムに関するメタデータを提供します。
仮想生成カラムの基になるカラムごとに、INNODB_VIRTUAL
テーブルに行が表示されます。
INNODB_VIRTUAL
テーブルには、次のカラムがあります:
TABLE_ID
仮想カラムに関連付けられたテーブルを表す識別子 (INNODB_TABLES.TABLE_ID
と同じ値)。
POS
virtual generated column の位置値。 カラムの順序番号と順序位置がエンコードされるため、値は大きくなります。 値の計算に使用される式では、ビット単位の演算が使用されます:
((n
th virtual generated column for the InnoDB instance + 1) << 16)
+ the ordinal position of the virtual generated column
たとえば、InnoDB
インスタンスの最初の仮想生成カラムがテーブルの 3 番目のカラムである場合、式は (0 + 1) << 16) + 2
です。 InnoDB
インスタンスの最初の仮想生成カラムは常に数値 0 です。 テーブルの 3 番目のカラムとして、仮想生成カラムの順序位置は 2 です。 序数の位置は 0 からカウントされます。
BASE_POS
仮想生成カラムのベースとなるカラムの順序位置。
mysql>CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
`c` int(11) GENERATED ALWAYS AS (a+b) VIRTUAL,
`h` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
mysql>SELECT * FROM INFORMATION_SCHEMA.INNODB_VIRTUAL
WHERE TABLE_ID IN
(SELECT TABLE_ID FROM INFORMATION_SCHEMA.INNODB_TABLES
WHERE NAME LIKE "test/t1");
+----------+-------+----------+ | TABLE_ID | POS | BASE_POS | +----------+-------+----------+ | 98 | 65538 | 0 | | 98 | 65538 | 1 | +----------+-------+----------+
次のテーブルに示すように、定数値が virtual generated column に割り当てられている場合、そのカラムのエントリは INNODB_VIRTUAL
テーブルに表示されません。 エントリを表示するには、仮想生成カラムにベースカラムが必要です。
CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL, `c` int(11) GENERATED ALWAYS AS (5) VIRTUAL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
ただし、このようなカラムのメタデータは INNODB_COLUMNS
テーブルに表示されます。
このテーブルをクエリーするには PROCESS
権限が必要です。
INFORMATION_SCHEMA
COLUMNS
テーブルまたは SHOW COLUMNS
ステートメントを使用して、データ型やデフォルト値など、このテーブルのカラムに関する追加情報を表示します。