技术文摘
MySQL GENERATED COLUMN 是什么以及创建表时如何使用它
MySQL GENERATED COLUMN 是什么以及创建表时如何使用它
在MySQL数据库中,GENERATED COLUMN(生成列)是一项强大且实用的功能。简单来说,生成列是一种虚拟列,它的值不是通过手动插入或更新来设置,而是基于表中其他列的值通过表达式计算得出。
GENERATED COLUMN 为数据库管理带来诸多便利。它能提升数据的一致性。比如在一个存储商品信息的表中,有“单价”和“数量”列,我们可以创建一个“总价”的生成列,其值自动通过“单价 * 数量”计算得到。这样无论何时单价或数量发生变化,总价都会实时更新,避免了人工计算可能产生的错误。使用生成列可以简化查询操作。开发人员无需在每次查询时都手动编写复杂的计算表达式,直接查询生成列就能获取计算结果。
接下来看看在创建表时如何使用 GENERATED COLUMN。假设我们要创建一个员工信息表,包含“基本工资”“奖金”和“总收入”列,其中“总收入”为生成列。代码如下:
CREATE TABLE employees (
id INT PRIMARY KEY AUTO_INCREMENT,
basic_salary DECIMAL(10, 2),
bonus DECIMAL(10, 2),
total_income DECIMAL(10, 2) GENERATED ALWAYS AS (basic_salary + bonus) VIRTUAL
);
在上述代码中,“total_income”列通过“GENERATED ALWAYS AS (basic_salary + bonus)”定义为生成列,其值由“基本工资 + 奖金”计算得出。“VIRTUAL”关键字表示这是一个虚拟生成列,不占用额外的存储空间。
生成列还有“STORED”类型。与“VIRTUAL”不同,“STORED”生成列会将计算结果存储在磁盘上,虽然会占用一定空间,但查询时无需重新计算,能提高查询性能。例如:
CREATE TABLE products (
id INT PRIMARY KEY AUTO_INCREMENT,
price DECIMAL(10, 2),
quantity INT,
total_price DECIMAL(10, 2) GENERATED ALWAYS AS (price * quantity) STORED
);
MySQL 的 GENERATED COLUMN 功能为数据库设计和操作提供了更多的灵活性和便捷性。合理运用生成列,能够优化数据库结构,提升数据处理效率。无论是小型项目还是大型企业级应用,这一功能都值得深入研究和使用。
TAGS: 使用方法 MySQL 创建表 MySQL_GENERATED_COLUMN
- 20 个架构师必知的英文缩写,你了解多少?
- AI 补代码神器登场,支持多语言及主流编辑器,令程序员兴奋
- Docker 镜像与 Docker 容器的关系探究
- 运用 Python 与 Scribus 构建一个 RGB 立方体
- Python 接口测试自动化实战与代码示例:涵盖 Get、Post 等方法
- 轻松掌握 Java 中的原码、补码和反码,不再纠结
- 阿里基础设施架构怎样应对交易峰值 1200 倍突增
- 阿里 Java 异常面试:你知多少?
- 在成为架构师前,需先掌握一门编程语言
- 2019 年 JavaScript 的 6 大机器学习库
- Gartner:高等教育领域的人工智能实践
- 前端:Vue 与 React 优点及核心差异对比
- AR/VR 早期估值疲软 投资与收购机遇将至?
- 挖掘 JavaScript 数组的潜在力量
- 巧用 Optional 消除 NullPointExcept 困扰