给出下表:
1 6 2 70 有没有一种方法可以添加基于同一表中另一列自动计算的列?就像一个VIEW,但是属于同一张表。例如,calculated将是的一半value。Calculated应该在value更改时自动更新,就像VIEW一样。
结果将是:
1 6 3 2 70 35
对于5.7.6及更高版本的MySql版本,Generated Column是一种很好的方法。
有两种生成的列:
虚拟(默认)-从表中读取记录时,将即时计算列 已存储-在表中写入/更新新记录时将计算列 两种类型都可以具有NOT NULL限制,但是只有一个存储的Generated Column可以成为索引的一部分。
对于当前情况,我们将使用存储的生成列。为了实现这一点,我考虑了表中列出了计算所需的两个值
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); 金额会自动在表格中弹出,您可以直接访问它,也请注意,每当您更新任何列时,金额也会被更新。来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。