天天看點

MYSQL5.7生成列簡介及建立

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】 我們若活着,是為主而活;若死了,是為主而死。是以我們或活或死,總是主的人。

繼續閱讀