首页 > 数据库 > mysql教程 > MySQL中如何根据另一列自动计算一列?

MySQL中如何根据另一列自动计算一列?

DDD
发布: 2025-01-17 07:51:18
原创
692 人浏览过

How Can I Automatically Calculate a Column Based on Another Column in MySQL?

MySQL 中基于另一列自动计算列

在数据库编程领域,表是数据存储的基石,但有时需要从现有列中导出附加信息。这就是计算列发挥作用的地方,它提供了一种创建新列的方法,这些新列的值会根据另一列自动更新。

数据库设置

考虑以下表格:

<code>id | value
--------------
1     6
2     70</code>
登录后复制

问题陈述

任务是添加一个名为“calculated”的列,该列是“value”列的一半。当“value”列更改时,此计算列应自动更新。

解决方案:生成列

MySQL 5.7.6 及更高版本引入了名为“生成列”的功能。这些列允许根据现有列进行动态计算,类似于视图,但作为表的一个组成部分。

生成列有两种类型:

  • 虚拟 (默认): 从表中读取记录时即时计算。
  • 存储: 在表中插入或更新新记录时计算。

实现

在本例中,我们将使用存储的生成列。以下是添加它的 SQL 语句:

<code>ALTER TABLE table_name ADD COLUMN calculated AS (value / 2) STORED;</code>
登录后复制

这将创建一个名为“calculated”的新列,其值为每一行的“value”列的一半。

优点和注意事项

生成列具有以下优点:

  • 自动更新: 当源列更改时,计算列会自动更新,确保值始终准确。
  • 可索引: 存储的生成列可用作索引的一部分,从而提高查询性能。
  • NOT NULL 限制: 虚拟和存储的生成列都可以具有 NOT NULL 限制,从而确保数据完整性。

示例

添加计算列后,表将如下所示:

<code>id | value | calculated
-----------------------
1     6       3
2     70      35</code>
登录后复制

结论

生成列提供了一种向表添加计算列的强大方法。通过利用“stored”选项,它确保计算列自动更新并可以建立索引,从而在数据管理中提供更高的灵活性和效率。

以上是MySQL中如何根据另一列自动计算一列?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板