MySQL generated column

MySQL 5.7之后增加了对generated column的支持,能够在此列中指定一些预先定义的表达式(predefined expression)或者是结合其他列使用一些函数计算出相应的结果做给该列的值

语法

column_name data_type [GENERATED ALWAYS] AS (expression) [VIRTUAL | STORED] [UNIQUE [KEY]]

generated column有两种类型,分别是virtual(默认值),stored,前者并不会将值存储到磁盘,后者会,在性能上前者更优。
创建generated column后在,insert,update,drop关联的column的时候将有可能报错。

举例

DROP TABLE IF EXISTS contacts;

CREATE TABLE contacts (
    id INT AUTO_INCREMENT PRIMARY KEY,
    first_name VARCHAR(50) NOT NULL,
    last_name VARCHAR(50) NOT NULL,
    fullname varchar(101) GENERATED ALWAYS AS (CONCAT(first_name,' ',last_name)),
    email VARCHAR(100) NOT NULL
);

INSERT INTO contacts(first_name,last_name, email)
VALUES('john','doe','john.doe@mysqltutorial.org');

SELECT 
    *
FROM
    contacts;

这里写图片描述

推荐博文

How To Use The MySQL Generated Columns
MySQL 5.7新特性之Generated Column(函数索引)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值