MySQL 5.7 GENERATED ALWAYS列定义为子查询

时间:2016-11-17 14:39:41

标签: mysql sql innodb dynamically-generated

我似乎无法查询我的查询问题。我有四张桌子:

  • agency_info
  • equipment_taken
  • equipment_weight
  • mission_overview

在mission_overview中是一列totalWeightInKG,我希望通过选择equipment_taken.qty(即INT)和equipment_weight.equipWeightInKG(即FLOAT)来计算,然后将它们相乘。

到目前为止,我有这个列定义:

FLOAT GENERATED ALWAYS AS (SELECT qty, equpWeightInKG, (qty*equpWeightInKG) AS totalWeightInKG FROM equipment_taken, equipment_weight) STORED ;

我无法理解它...阅读有关SELECT查询和加入的文档,但仍然无法提出正确的查询...

1 个答案:

答案 0 :(得分:2)

https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html说:

  

不允许使用子查询,参数,变量,存储函数和用户定义函数。

要执行您尝试执行的操作,您必须在INSERT之前和UPDATE之前编写触发器以查询其他表并填充浮动列。