나는 가장 좋은 방법은 콤보 CREATE AS SELECT
과 MINUS
연산자를 사용하는 것입니다.
- 첫째, 당신은 당신이 당신의 소스와 건조 사이
minus
을, 다시 *_dry
테이블, 마지막
- 을 스크립트를 실행
CREATE TABLE t_dry AS (SELECT * FROM t)
- 2와 임시 테이블을 만들 수 있습니다.
예 :
SQL Fiddle
오라클 11g R2 스키마 설정 :
CREATE TABLE t
("a" int, "b" int)
;
INSERT ALL
INTO t ("a", "b")
VALUES (1, 2)
INTO t ("a", "b")
VALUES (3, 4)
INTO t ("a", "b")
VALUES (5, 6)
SELECT * FROM dual
;
CREATE TABLE t_dry
AS (SELECT * FROM t);
;
update t_dry set "b" = 7 where "a" = 5;
delete from t_dry where "a" =3;
INSERT INTO t_dry ("a", "b")
VALUES (8, 9)
;
검색어 1 :
SELECT A.*
FROM (
(
SELECT '+' AS "Diff", T_DRY.* FROM T_DRY
MINUS
SELECT '+' AS "Diff", T.* FROM T
)
UNION ALL
(
SELECT '-' AS "Diff", T.* FROM T
MINUS
SELECT '-' AS "Diff", T_DRY.* FROM T_DRY
)
) A
ORDER BY A."a" , "Diff" DESC
,
Results :
| Diff | a | b |
|------|---|---|
| - | 3 | 4 |
| - | 5 | 6 |
| + | 5 | 7 |
| + | 8 | 9 |
얼마나 많은 표? 당신은 마른 실행 "이 될거야"삭제 또는 "이 삭제되었습니다"로그를 원하십니까? – Blag
하나의 상위 테이블과 10 개의 하위 테이블입니다. 건식이어야합니다. 감사합니다. – Mario
질문을 편집하고 스크립트를 추가 할 수 있습니까? – Blag