Oracle
 sql >> Base de données >  >> RDS >> Oracle

Création d'une vue matérialisée qui s'actualise toutes les 5 minutes

J'ai démontré dans les étapes où une vue matérialisée s'actualise après chaque one minute , pour avoir un mv qui s'actualise après 5 minutes, utilisez next(sysdate+5/1440)

Étape 1 :

Create table temp (A int);

Étape 2 :

Create Materialized view temp_mv
      refresh complete start with (sysdate) next  (sysdate+1/1440) with rowid
        as select * from temp;

Étape 3 :

select count(*) from temp;

       COUNT(*)
      ----------
          0

Étape 4 :

select count(*) from temp_mv;

       COUNT(*)
       ----------
          0

Étape 5 :

begin
      for i in 1..10 loop
         insert into temp values (i+1);
      end loop;
end;
/

Étape 6 :

commit;

Étape 7 :

select count(*) from temp;

      COUNT(*)
     ----------
        10

Étape 8 :

select count(*) from temp_mv;

       COUNT(*)
       ----------
          0

Étape 9 :

select to_char(sysdate,'hh:mi') from dual;

       TO_CH
       -----
       04:28

Étape 10 :

select to_char(sysdate,'hh:mi') from dual;

       TO_CH
        -----
       04:29

Étape 11 :

select count(*) from temp;

      COUNT(*)
     ----------
        10

Étape 12 :

select count(*) from temp_mv;

      COUNT(*)
      ----------
         10