MySQL Generated Columns
カラムを INSERT/UPDATEなしに MySQL 側で作成する機能
Virtual / Stored の2種類あり、Stored はレコードが追加/更新されるたびにカラムの値が更新され、 Virtual は read 時に計算される
Storedにしないと index は効かない
Virtual
code:sql
CREATE TABLE products (
id int NOT NULL,
price int NOT NULL,
count int NOT NULL,
total int NOT NULL AS (price * count`),
PRIMARY KEY(id)
);
Stored
code:sql
CREATE TABLE products (
id int NOT NULL,
price int NOT NULL,
count int NOT NULL,
total int NOT NULL AS (price * count`) STORED,
PRIMARY KEY(id)
);
ebiken.icon ISUCONでは使えるが、今の所本番サービスで使うユースケースはわからない ドメインロジックはアプリケーション側に寄せたい
ref