Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

การทำงานของ MySQL Stored Generated Column กับนิพจน์คณิตศาสตร์

Stored Generated Column จะคำนวณและเก็บค่าจริงลงดิสก์ ใช้คีย์เวิร์ด STORED ตรงท้ายนิพจน์

ตัวอย่าง: คำนวณด้านตรงข้ามมุมฉาก (SideC) จาก SideA และ SideB

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 |
+-------+--------+------+-----+---------+------------------+

ทดสอบเพิ่มข้อมูล

mysql> INSERT INTO triangle_stored(SideA, SideB) VALUES(1,1), (3,4), (6,8);
Query OK, 3 rows affected (0.09 sec)

mysql> SELECT * FROM triangle_stored;
+-------+-------+--------------------+
| SideA | SideB | SideC              |
+-------+-------+--------------------+
| 1     | 1     | 1.4142135623730951 |
| 3     | 4     | 5.291502622129181  |
| 6     | 8     | 10.583005244258363 |
+-------+-------+--------------------+

คำอธิบาย: SideC คำนวณจากสูตรพีทาโกรัส SQRT(SideA² + SideB²) และเก็บค่าจริงลงดิสก์ (STORED) คำนวณครั้งเดียวตอน INSERT/UPDATE