sql >> Database teknologi >  >> RDS >> Mysql

MySQL:Computed Column

En beregnet kolonne betyder normalt en værdi, du kan beregne pr. række. MySQL understøtter det ikke, men det gør SQL Server. For eksempel for at gemme summen af ​​to kolonner permanent:

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

Du ønsker dog at gemme et aggregat, det vil sige en værdi for en gruppe rækker. MySQL og SQL Server understøtter ikke materialiserede visninger med et aggregat, men Oracle gør:

create table Table1 (a int, b int);

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

Men med MySQL er det tætteste du kan gøre et cronjob, der med jævne mellemrum udfylder en tabel:

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

Du kan forespørge i tabellen som en materialiseret visning; det vil være lige så hurtigt, men det er ikke garanteret at være opdateret.



  1. MySQL 8.0 - Klienten understøtter ikke godkendelsesprotokol anmodet af serveren; overveje at opgradere MySQL-klienten

  2. Postgres:Hvordan konverteres en json-streng til tekst?

  3. Migrering af MySQL til PostgreSQL på AWS RDS, del 3

  4. Gentag en streng flere gange i MySQL – REPEAT()