sql >> Database >  >> RDS >> Mysql

MySQL:berekende kolom

Een berekende kolom betekent normaal gesproken een waarde die u per rij kunt berekenen. MySQL ondersteunt dat niet, maar SQL Server wel. Om bijvoorbeeld de som van twee kolommen permanent op te slaan:

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

U wilt echter een aggregaat opslaan, dat wil zeggen een waarde voor een groep rijen. MySQL en SQL Server ondersteunen geen gematerialiseerde weergaven met een aggregaat, maar Oracle wel:

create table Table1 (a int, b int);

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

Met MySQL kun je echter het beste een cronjob doen die periodiek een tabel vult:

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

U kunt de tabel opvragen als een gematerialiseerde weergave; het zal even snel zijn, maar niet gegarandeerd up-to-date zijn.



  1. Werken met SQL-cursors

  2. Wat is @@SERVICENAME in SQL Server?

  3. PostgreSQL kolommen naar rijen converteren? transponeren?

  4. Hoe kan ik een MySQL-resultatenset doorlopen?