首页 > 其他分享 >test,测试物化视图新增时间戳字段

test,测试物化视图新增时间戳字段

时间:2022-11-19 11:56:47浏览次数:47  
标签:SOURCE 视图 物化 ---------- emp SQL test SELECT EMP

使用触发器维护一个时间戳字段,这是ETL取数据时的常用手段。能优化不少sql,下面演示详细过程。

  • 使用老演员scott 创建mvlog和mv
SQL> CREATE MATERIALIZED VIEW LOG ON emp_source WITH PRIMARY KEY;
SQL> CREATE MATERIALIZED VIEW MV_EMP_SOURCE
BUILD IMMEDIATE REFRESH FAST
ON DEMAND
AS SELECT * FROM EMP_SOURCE; 

  • 两个表数据都为空
SQL> set lines 200 pages 200
SQL> SELECT * FROM EMP_SOURCE;

no rows selected

SQL> SELECT * FROM MV_EMP_SOURCE;

no rows selected

  • 添加新字段,并写入数据刷新

SQL> alter table MV_EMP_SOURCE add deal_time date ;

Table altered.

SQL> insert into emp_source select * from emp where empno=7839;

1 row created.

SQL> commit;

Commit complete.

SQL> SELECT * FROM EMP_SOURCE;

     EMPNO ENAME      JOB              MGR HIREDATE               SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------------- ---------- ---------- ----------
      7839 KING       PRESIDENT            17-NOV-81             5000                    10

SQL> SELECT * FROM MV_EMP_SOURCE;

no rows selected

SQL>
SQL> BEGIN
  dbms_mview.refresh(list => 'mv_emp_source');
END;
/ 

SQL> SELECT * FROM MV_EMP_SOURCE;

     EMPNO ENAME      JOB              MGR HIREDATE               SAL       COMM     DEPTNO DEAL_TIME
---------- ---------- --------- ---------- --------------- ---------- ---------- ---------- ---------------
      7839 KING       PRESIDENT            17-NOV-81             5000                    10
  • 创建触发器,重新写入数据并刷新mv
SQL> create or replace trigger trg_update_mv_emp
  before insert or update on mv_emp_source
  for each row
begin
  :new.deal_time := sysdate;
end trg_update_mv_emp;
/


SQL> insert into emp_source select * from emp where empno=7566;

1 row created.

SQL> BEGIN
  dbms_mview.refresh(list => 'mv_emp_source');
END;
/
  • mv_emp_source的deal_time有一个有值,有一个没值。
SQL> SELECT * FROM EMP_SOURCE;

     EMPNO ENAME      JOB              MGR HIREDATE               SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------------- ---------- ---------- ----------
      7839 KING       PRESIDENT            17-NOV-81             5000                    10
      7566 JONES      MANAGER         7839 02-APR-81             2975                    20

SQL> SELECT * FROM MV_EMP_SOURCE;

     EMPNO ENAME      JOB              MGR HIREDATE               SAL       COMM     DEPTNO DEAL_TIME
---------- ---------- --------- ---------- --------------- ---------- ---------- ---------- ---------------
      7839 KING       PRESIDENT            17-NOV-81             5000                    10
      7566 JONES      MANAGER         7839 02-APR-81             2975                    20 19-NOV-22

SQL> exit;

标签:SOURCE,视图,物化,----------,emp,SQL,test,SELECT,EMP
From: https://www.cnblogs.com/fooobabar/p/16905777.html

相关文章

  • The 2021 ICPC Asia Nanjing Regional Contest
    https://codeforces.com/gym/103470H.Crystalfly分析:可以很好的分析出一个节点最多只能选择两个儿子产生贡献过程就是u子树中xy分别为u的儿子并且t[y]=3u先到......
  • 【USACO2021 February Contest Platinum】Minimizing Edges(图论,贪心)
    传送门设\(d_0(u),d_1(u)\)分别表示\(1\)到\(u\)的偶数长最短路和奇数长最短路。那么即为要求\(G,G'\)的\(d_0,d_1\)都相同。先特判掉二分图的情况,这样任意\(......
  • pytest.ini详解
    pytest.ini详解[pytest]timeout=1500addopts=-v-s-pno:warningslog_cli=true;NOTSET,DEBUG,INFO,WARNING,ERROR,CRITICALlog_cli_level=NOTSETlog_......
  • test
    <template><divref="riskReportQueryList"class="riskReportQueryList"><divstyle="background:#fff;padding:10px;"><divstyle="font-size:16px;heig......
  • test20221118打铁记
    总述T1噩梦,十二棵树状数组写挂。最后\(10\)分钟\(O(n^2)\)\(50\)分保命。总分\(50+8+10+20=88\),班级\(\operatorname{rank}{7}\)。还是太菜了。T1.组队(2437)......
  • Caused by: android.view.InflateException: Binary XML file line #2 in com.example
    在学习《Android第一行代码》的14.5章节深色主题的内容时,该章节是以MaterialTest项目作为示例的,并且在res目录下创建了一个values-29目录,在values-29目录下又创建了一个sty......
  • AtCoder Regular Contest 151补题
    AtCoderRegularContest151A.EqualHammingDistances简单题,注意下答案需要字典序最小即可#include<bits/stdc++.h>usingnamespacestd;#definerep(i,l,r)for(......
  • 使用Mockito与Squaretest进行单元测试.
    项目开发过程中,不少公司都要求写单元测试的代码,可以提高代码的质量,并且可以减少出现BUG的概率。对于中小型公司来说,对单元测试不做硬性要求,不写最好。因为还是需要一......
  • Test
    1@Test2publicvoidtest12(){3Stringa="[{\"screenType\":null,\"scenarioType\":null,\"viewType\":null,\"id\":\"31515\",\"ids\":null,\"batch......
  • NumPy切片或直接赋值生成数组视图
    1先创建一个ndarry数组aimportnumpyasnpa=np.arange(start=1,stop=10,step=2)print(a)[13579]2将a切片赋值于一个数组bb=a[0:1]print(b)[1]3......