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

Tạo cột ảo (Generated Column) tự động tính 'Average Score' trong MySQL

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.