Giới thiệu
MySQL 5.7+ hỗ trợ Generated Column (Virtual Column): cột được tính toán tự động từ các cột khác, không lưu trữ vật lý (VIRTUAL) hoặc lưu trữ (STORED). Cú pháp: GENERATED ALWAYS AS (bieu_thuc) VIRTUAL.
Ví dụ: Tính điểm trung bình của 2 cột
Bước 1: Tạo bảng gốc
CREATE TABLE demo32 (value1 INT, value2 INT);
INSERT INTO demo32 VALUES (30,60), (20,40), (35,35);
Bước 2: Thêm cột ảo Average Score
ALTER TABLE demo32
ADD COLUMN `Average Score` FLOAT
GENERATED ALWAYS AS ((value1 + value2) / 2) VIRTUAL;
Bước 3: Kết quả truy vấn
SELECT * FROM demo32;
+--------+--------+---------------+
| value1 | value2 | Average Score |
+--------+--------+---------------+
| 30 | 60 | 45 |
| 20 | 40 | 30 |
| 35 | 35 | 35 |
+--------+--------+---------------+
Ưu điểm: Không cần INSERT/UPDATE thủ công, dữ liệu luôn nhất quán, không tốn dung lượng lưu trữ (VIRTUAL). Dùng STORED nếu cần index trên cột này.