技术文摘
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
- Python 图像处理的五个有趣实用场景
- Python 单元测试的运用方法
- 探讨 C#自定义特性的创建
- ThreadLocal:专属线程的变量
- Guava 与 Spring 怎样抽象观察者模式
- JavaScript 中队列数据结构的实现方法
- Swift Hook 的全新思路:虚函数表
- Node.js v15.x 新特性:控制器对象 AbortController
- 面试怎样突破重重关卡?
- 永远别在代码里用“User”一词!
- 面试官:怎样评估线程池应设置的线程数量
- 探析 StampedLock 的使用及主要实现理念
- 实现有效的 Kubernetes 成本优化之道
- Linux 中对 Python 程序最大内存使用的限制
- 学 C++只为竞赛和凑语言?网友:莫钓鱼