GENERATED ALWAYS AS 和default区别
时间: 2024-04-03 13:35:52 浏览: 193
mysql5.7 生成列 generated column用法实例分析
GENERATED ALWAYS AS 和default都可以用于设置列的默认值,但是它们有两个主要的区别:
1. 计算方式不同
default是在插入数据时使用的默认值,也可以在定义表时设置默认值。这个值是静态的,不会随着其他列的值而改变。
GENERATED ALWAYS AS是在查询时计算的,它的值是动态的,会随着其他列的值而改变。它可以使用表达式来计算,默认情况下,它是一个虚拟列,不会占用存储空间。
2. 存储方式不同
default值是在表中存储的,当您插入一条记录时,这个默认值将作为列的实际值存储在表中。
GENERATED ALWAYS AS是虚拟列,不会在表中存储。它是在查询时计算的,因此不需要存储。
总的来说,GENERATED ALWAYS AS提供了更灵活的默认值选项,可以使用表达式来计算,而且不会占用存储空间。但是,如果您需要一个静态的默认值,default可能更适合您的需求。
阅读全文