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

Cột GENERATED COLUMNS lưu trữ (STORED) 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 lưu trữ (stored generated column) trong bảng tên triangle_stored. Như đã biết, cột tạo lưu trữ được tạo bằng từ khóa STORED.

Ví dụ

mysql> Create table triangle_stored(SideA DOUBLE, SideB DOUBLE, SideC DOUBLE AS (SQRT(SideA * SideA + 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)
mysql> INSERT INTO triangle_stored(SideA, SideB) Values(1,1),(3,4),(6,8);
Query OK, 3 rows affected (0.09 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> Select * from triangle_stored;
+-------+-------+--------------------+
| SideA | SideB | SideC              |
+-------+-------+--------------------+
| 1     | 1     | 1.4142135623730951 |
| 3     | 4     | 5.291502622129181  |
| 6     | 8     | 10.583005244258363 |
+-------+-------+--------------------+
3 rows in set (0.00 sec)

Lưu ý: Biểu thức gốc trong ví dụ có lỗi (SideA * SideB + SideB * SideB), đã được sửa thành SideA * SideA + SideB * SideB để tính đúng định lý Pythagoras.