从另一列计算的列?鉴于下表:id | value--------------1 62 70有没有办法添加一个根据同一个表中的另一列自动计算的列?像VIEW,但同一个表的一部分。举个例子,calculated就是一半value。Calculated应该在value更改时自动更新,就像VIEW一样。结果将是:id | value | calculated-----------------------1 6 32 70 35
3 回答
慕田峪4524236
TA贡献1875条经验 获得超5个赞
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);
金额将自动弹出表格,您可以直接访问它,另请注意,无论何时更新任何列,金额也会更新。
添加回答
举报
0/150
提交
取消