是否可以根据另一个 table 生成列?
Is it possible to have a generated column based on another table?
我想知道是否可以使用 group by 查询来创建生成的列。例如下图中,是否可以根据外键匹配的资产数量生成设备数量?
您不能对计算列执行此操作。如果您想存储和维护此类信息,则需要针对 table asset
上的每个 DML 操作触发代码,这会使事情变得相当复杂。
另一方面,您可以创建视图:
create view v_equipment
select e.*,
(select count(*) from asset a where a.equipment_id = e.equipment_id) as quantity
from equipment e
这让您始终了解最新的数据。当您需要 quantity
信息时,您可以直接查询视图而不是 table。
我想知道是否可以使用 group by 查询来创建生成的列。例如下图中,是否可以根据外键匹配的资产数量生成设备数量?
您不能对计算列执行此操作。如果您想存储和维护此类信息,则需要针对 table asset
上的每个 DML 操作触发代码,这会使事情变得相当复杂。
另一方面,您可以创建视图:
create view v_equipment
select e.*,
(select count(*) from asset a where a.equipment_id = e.equipment_id) as quantity
from equipment e
这让您始终了解最新的数据。当您需要 quantity
信息时,您可以直接查询视图而不是 table。