MySQL - Virtual Column
Virtual Columns in InnoDB INFORMATION_SCHEMA 記錄了一些關於 InnoDB 管理的 schema 物件的 metadata, 這些資訊來自於 InnoDB 內部 system tables, 這些資訊沒辦法跟一般 table 一樣, 可以直接查詢, 傳統上的做法應該是解析 SHOW_ENGINE_INNODB_STATUS 的輸出. 不過 INFORMATION_SCHEMA 這張表有提供介面可以讓你使用 SQL 查詢這類型的資料. 這個跟 Virtual Column 有什麼關係? Virtual Column 其實並不會儲存實體資料在 table 的 clustered index 內! 不過 Virtual Column 的 metadata 會存在 InnoDB 的 INFORMATION_SCHEMA 的 SYS_COLUMNS 內! 舉例來說 ## 建立一張表 t 有著 a, b, c 三個欄位, c 是 virtual column CREATE TABLE t (a INT, b INT, c INT GENERATED ALWAYS AS(a+b), PRIMARY KEY(a)); ## SELECT * FROM t; +----+------+------+ | a | b | c | +----+------+------+ | 11 | 3 | 14 | +----+------+------+ ## 從 SYS_COLUMNS 中觀察 SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS WHERE TABLE_ID IN ( SELECT TABLE_ID FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE "t%" ); +----------+------+-------+-------+--------+-----+ | TABLE_ID | NAME | POS | MTYPE | PRTYPE | LEN | +----------+------+-------+-------+--------+...