【发布时间】:2020-07-31 01:07:21
【问题描述】:
我不是数据库专家,尽管如此,我创建了一个语句,它通过表中的唯一组 id 来计算 ids 函数,如下所示:
USE farm;
SELECT reg.grpId, COUNT(reg.id) as TOTAL FROM farm.reg group by reg.grpId;
因为我不想在 NodeJs 服务器上进行操作,所以我需要知道是否可以生成如下所示的生成列,这会给我一个错误 1064 -SELECT not valid at this position
声明:
USE farm;
ALTER TABLE reg ADD total INT GENERATED ALWAYS AS(SELECT reg.grpId COUNT(reg.id) FROM farm.reg group by reg.grpId)STORED AFTER grpId;
谢谢!
【问题讨论】:
-
就是这样,你不能为所欲为,你不应该存储可以按需计算的数据。
-
不。不可能。
-
见docs:“子查询是不允许的。”
-
好的,知道了!但是有任何解决方法,我只需要概念或步骤(例如,创建另一个表来存储第一个和有效的语句,然后你可以做一个任何......),而不是代码本身
标签: mysql join window-functions sql-view generated-columns