1、說明
生成列是由已存在的字段通過表達式計算得來的
2、生成列類型
VIRTUAL,即
虛拟
類型,字段值不實際存儲,當讀取行時再計算,虛拟列類型不占存儲
STORED,即
存儲
類型,字段值會實際存儲起來,當插入或更新時,字段值會計算出來并存儲起來
3、用法
col_name data_type [GENERATED ALWAYS] AS (expr)
[VIRTUAL | STORED] [NOT NULL | NULL]
[UNIQUE [KEY]] [[PRIMARY] KEY]
[COMMENT 'string']
如:
CREATE TABLE person (
first_name VARCHAR(10) NOT NULL COMMENT '名',
last_name VARCHAR(10) NOT NULL COMMENT '姓',
full_name VARCHAR(21) GENERATED ALWAYS AS (CONCAT(first_name,' ',last_name)) STORED NOT NULL COMMENT '全名'
);
再如:
ALTER TABLE person ADD full_name_gc VARCHAR(21)
GENERATED ALWAYS AS (CONCAT(first_name,'_',last_name)) VIRTUAL NOT NULL COMMENT '全名(虛拟列)'
詳見 https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html
【羅 14:8】 我們若活着,是為主而活;若死了,是為主而死。是以我們或活或死,總是主的人。