从另一列计算的列?

从另一列计算的列?

鉴于下表:


id | value

--------------

1     6

2     70

有没有办法添加一个根据同一个表中的另一列自动计算的列?像VIEW,但同一个表的一部分。举个例子,calculated就是一半value。Calculated应该在value更改时自动更新,就像VIEW一样。


结果将是:


id | value | calculated

-----------------------

1     6       3

2     70      35


桃花长相依
浏览 540回答 3
3回答

慕田峪4524236

Generated Column是MySql版本的一个很好的方法,它是5.7.6及更高版本。生成列有两种:虚拟(默认) - 将从表中读取记录时动态计算列存储 - 将在表中写入/更新新记录时计算列两种类型都可以具有NOT NULL限制,但只有存储的生成列可以是索引的一部分。对于当前情况,我们将使用存储生成的列。为了实现我已经考虑过计算所需的两个值都存在于表中CREATE TABLE order_details (price DOUBLE, quantity INT, amount DOUBLE AS (price * quantity)); INSERT INTO order_details (price, quantity) VALUES(100,1),(300,4),(60,8);金额将自动弹出表格,您可以直接访问它,另请注意,无论何时更新任何列,金额也会更新。

慕娘9325324

如果是选择,您可以这样做:SELECT id, value, (value/2) AS calculated FROM mytable否则,您还可以先更改表以添加缺少的列,然后执行UPDATE查询以计算新列的值,如下所示:UPDATE mytable SET calculated = value/2;如果它必须是自动的,并且您的MySQL版本允许它,您可以尝试使用触发器
打开App,查看更多内容
随时随地看视频慕课网APP