MySQL 的虛擬 GENERATED COLUMNS 列如何與數學表示式一起工作?


我們可以藉助一個例子來說明,在這個例子中,我們在名為“triangle”的表中建立了一個虛擬生成列。正如我們所知,虛擬生成列可以用“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 列是一個虛擬生成列。

mysql> INSERT INTO triangle(SideA, SideB) Values(1,1),(3,4),(6,8);
Query OK, 3 rows affected (0.15 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql> Select * from triangle;
+-------+-------+--------------------+
| SideA | SideB | SideC              |
+-------+-------+--------------------+
| 1     | 1     | 1.4142135623730951 |
| 3     | 4     | 5.291502622129181  |
| 6     | 8     | 10.583005244258363 |
+-------+-------+--------------------+
3 rows in set (0.03 sec)

更新於:2020-2-21

121 瀏覽量

開啟您的職業生涯

完成課程即可獲取認證

開始
廣告
© . All rights reserved.