数据库 virtual 虚拟字段

描述

在MySQL 5.7及以后版本中,支持两种Generated Column,即Virtual Generated Column和Stored Generated Column,前者只将Generated Column保存在数据字典中(表的元数据),并不会将这一列数据持久化到磁盘上;后者会将Generated Column持久化到磁盘上,而不是每次读取的时候计算所得。很明显,后者存放了可以通过已有数据计算而得的数据,需要更多的磁盘空间,与Virtual Column相比并没有优势。

使用

CREATE TABLE `test` (
    `datetime_now` datetime DEFAULT NULL,
	`date_now` DATE AS (date_format(`datetime_now`,'%Y-%m-%d')) virtual,
	`time_now` TIME AS (date_format(`datetime_now`,'%H:%i:%s')) virtual

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

表设计
在这里插入图片描述在这里插入图片描述
字段date_now 和 time_now 是根据datetime_now的数值自动生成。所以在插入数据的时候只需要插入datetime_now这个字段的值即可。

你可能感兴趣的:(数据库 virtual 虚拟字段)