|
用连接比UNION ALL更好:
CREATE TABLE A(a number primary key,b number,c number,d number);
CREATE TABLE B(a number primary key,e number,f number);
CREATE MATERIALIZED VIEW LOG ON A WITH SEQUENCE, ROWID,PRIMARY KEY INCLUDING NEW VALUES;
CREATE MATERIALIZED VIEW LOG ON B WITH SEQUENCE, ROWID,PRIMARY KEY INCLUDING NEW VALUES;
----------------------
CREATE MATERIALIZED VIEW MV_TEST_AB
REFRESH FAST ON COMMIT
AS
SELECT a.ROWID ARID
,b.ROWID BRID
,a.a a1
,b.a a2
FROM a,b
WHERE a.a=b.a AND b.e=1;
ALTER TABLE MV_TEST_AB ADD CONSTRAINT CHECK_AB_DATA CHECK(1=0);
---------------
测试:
INSERT INTO A VALUES(1,1,1,1);
INSERT INTO B VALUES(1,1,1);
jsu@JSU12P> COMMIT;
COMMIT
*
ERROR at line 1:
ORA-12008: error in materialized view refresh path
ORA-02290: check constraint (JSU.CHECK_AB_DATA) violated
测试2:
INSERT INTO A VALUES(1,1,1,1);
INSERT INTO B VALUES(1,0,1);
jsu@JSU12P> COMMIT;
Commit complete.
|
|