sql >> Base de Datos >  >> RDS >> Mysql

MySQL:columna calculada

Una columna calculada normalmente significa un valor que puede calcular por fila. MySQL no admite eso, pero SQL Server sí. Por ejemplo, para almacenar la suma de dos columnas de forma permanente:

create table Table1 (a int, b int, c as a+b persisted)

Sin embargo, busca almacenar un agregado, es decir, un valor para un grupo de filas. MySQL y SQL Server no admiten vistas materializadas con un agregado, pero Oracle sí:

create table Table1 (a int, b int);

create materialized view View1 as
select  a
,       count(*) as Cnt
from    Table1
group by
    a;

Sin embargo, con MySQL, lo más cercano que puede hacer es un cronjob que rellena periódicamente una tabla:

truncate table Table1Summary;
insert Table1Summary (a, Cnt) select a, count(*) from Table1;

Puede consultar la tabla como una vista materializada; será igual de rápido, pero no se garantiza que esté actualizado.