MySQL GENERATED COLUMNS 有哪些不同的类型?

MySQL GENERATED COLUMNS 有哪些不同的类型?

我们有两种 MySQL 生成的列,如下所示 —

阅读更多:MySQL 教程

VIRTUAL GENERATED COLUMN

顾名思义,这种生成的列不会占用任何磁盘空间。可以使用或不使用关键字“virtual”生成。为了理解,我们在以下示例中进行说明 —

示例

mysql> Create table triangle(SideA DOUBLE, SideB DOUBLE, SideC DOUBLE AS (SQRT(SideA * SideB + SideB * SideB)));
Query OK, 0 rows affected (0.44 sec)

mysql> Describe Triangle; 
+-------+--------+------+-----+---------+-------------------+
| Field | Type   | Null | Key | Default | Extra             |
+-------+--------+------+-----+---------+-------------------+
| SideA | double | YES  |     | NULL    |                   |
| SideB | double | YES  |     | NULL    |                   |
| SideC | double | YES  |     | NULL    | VIRTUAL GENERATED |
+-------+--------+------+-----+---------+-------------------+
3 rows in set (0.00 sec)

以上说明显示了列 SideC 是一个虚拟生成的列。

STORED GENERATED COLUMN

如名称所示,这种生成的列将占用磁盘空间。可以使用关键字“stored”生成。为了理解,我们在以下示例中进行说明 —

示例

mysql> Create table triangle_stored(SideA DOUBLE, SideB DOUBLE, SideC DOUBLE AS (SQRT(SideA * SideB + SideB * SideB)) STORED);
Query OK, 0 rows affected (0.47 sec)

mysql> Describe triangle_stored; 
+-------+--------+------+-----+---------+------------------+
| Field | Type   | Null | Key | Default | Extra            |
+-------+--------+------+-----+---------+------------------+
| SideA | double | YES  |     | NULL    |                  |
| SideB | double | YES  |     | NULL    |                  |
| SideC | double | YES  |     | NULL    | STORED GENERATED |
+-------+--------+------+-----+---------+------------------+
3 rows in set (0.00 sec)

以上说明显示了列 SideC 是一个存储生成的列。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程