Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cột GENERATED COLUMNS ảo (VIRTUAL) trong MySQL làm việc với biểu thức toán học như thế nào?

Chúng ta sẽ minh họa qua ví dụ tạo cột tạo ảo (virtual generated column) trong bảng tên triangle. Như đã biết, cột tạo ảo có thể được tạo với hoặc không sử dụng từ khóa VIRTUAL.

Ví dụ

mysql> Create table triangle(SideA DOUBLE, SideB DOUBLE, SideC DOUBLE AS (SQRT(SideA * SideA + 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)

Mô tả trên cho thấy cột SideC là một cột tạo ảo (virtually generated column).

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)

Lưu ý: Biểu thức đã được sửa chính xác theo định lý Pythagoras (SideA² + SideB²).