このページは機械翻訳したものです。
INNODB_VIRTUAL テーブルは、InnoDB virtual generated columns および仮想生成カラムのベースとなるカラムに関するメタデータを提供します。
仮想生成カラムの基になるカラムごとに、INNODB_VIRTUAL テーブルに行が表示されます。
INNODB_VIRTUAL テーブルには、次のカラムがあります:
-
TABLE_ID仮想カラムに関連付けられたテーブルを表す識別子 (
INNODB_TABLES.TABLE_IDと同じ値)。 -
POSvirtual generated column の位置値。 カラムの順序番号と順序位置がエンコードされるため、値は大きくなります。 値の計算に使用される式では、ビット単位の演算が使用されます:
((nth 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_SCHEMACOLUMNSテーブルまたはSHOW COLUMNSステートメントを使用して、データ型やデフォルト値など、このテーブルのカラムに関する追加情報を表示します。