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