我似乎找不到我的查询的问题。我有四张 table :
agency_info
equipment_taken
equipment_weight
mission_overview
在mission_overview中有一个列totalWeightInKG
,我想通过选择equipment_taken.qty
(这是INT)和equipment_weight.equipWeightInKG
来计算它code> (即 FLOAT),然后将它们相乘。
到目前为止,我有此列定义:
FLOAT GENERATED ALWAYS AS (SELECT qty, equpWeightInKG, (qty*equpWeightInKG) AS totalWeightInKG FROM equipment_taken, equipment_weight) STORED ;
我无法理解它...阅读有关 SELECT 查询和联接的文档,但似乎仍然无法提出正确的查询...
最佳答案
https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html说:
Subqueries, parameters, variables, stored functions, and user-defined functions are not permitted.
要执行您想要执行的操作,您必须在 INSERT 之前和 UPDATE 之前编写触发器来查询其他表并填充 float 列。
关于MySQL 5.7 GENERATED ALWAYS 列定义为子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40657727/