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

最新文章

  1. c#多线程
  2. java中的内部类总结
  3. django之一些feature
  4. PHP【函数】
  5. MATLAB基础知识之内存映射
  6. 逗号分隔的字符串转换为行数据(collection)(续)
  7. 【HDU 1007】Quoit Design
  8. 修改Fedora 20 启动项
  9. 控件注册 - 利用资源文件将dll、ocx打包进exe文件(C#版)
  10. <转>LOG日志级别
  11. MYSQL:RELPACE用法
  12. [SCOI2009]windy数
  13. 洛谷P2251 【质量检测】
  14. HashMap多线程put后get为null和多线程put的时候可能导致元素丢失
  15. js识别设备
  16. mysql ANSI_QUOTES 这个sql_mode的作用(字段可以使用双引号)
  17. [C] 在 C 语言编程中实现动态数组对象
  18. 吴裕雄 08-MySQL创建数据表
  19. STM 软件事务内存——本质是为提高并发,通过事务来管理内存的读写访问以避免锁的使用
  20. 升级安装windows8.1以后windowsphone8不能启动虚拟机的办法

热门文章

  1. Fiddler抓包Fiddler过滤
  2. BigDecimal 与double 转化失真
  3. Linux 运行命令 提示 bash command not found
  4. 远程控制分析之VBS编码转换
  5. Xcode7.2真机测试问题"The account 'appleID ' has no team with ID ‘’
  6. Java Web 应用概述
  7. day16——自定义模块、time、datetime、random
  8. Spring Boot 注解大全,真是太全了!
  9. NAIPC 2018
  10. JVM与并发