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

转载于:https://www.cnblogs.com/lukefan/p/10894213.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值