[급] 오라클 기초 질문
나츠
오라클 에서
두개의 테이블에서 인서트 할때요,,,
하나의 테이블에 no 값이 중복이 되면 인서트를 안하게 하는 쿼리좀 알려 주세요,,
예를 들면 ,,
두개의 테이블에 no 컬럼이 있구요,,
하네의 테이블에서해당 테이블로 인서트를 해야 되는데,,
해당 테이블에 no 값이같은게 있으면 인서트가 안되고,,
다른 no 값만 인서트가 되게요,,
-
벼리
그냥 PRIMARY KEY, FOREIGN KEY를 설정하시는게.. 쿼리를 어렵게 하지 않아도 가능하지 않을까요?
이런 방법이 아닌가 ㅡㅡa merge into를 쓰셔도 되지만^^; -
슬기
MERGE INTO T1 T1
USING ( SELECT ID, NAME
FROM T2 ) T2
ON (T1.ID = T2.ID )
WHEN MATCHED THEN
UPDATE SET T1.NAME = T2.NAME
WHEN NOT MATCHED THEN
INSERT (T1.ID, T1.NAME )
VALUES (T2.ID, T2.NAME ) -
알찬해
이거 말고 값이 있으면 UPDATE 하고 없으면 INSERT 하는
MERGE INTO 라는게 있는데 이건 오라클 9i 부터 지원합니다. -
가이
INSERT INTO T1 NAMES( ID, NAME )
SELECT ID, NAME FROM T2 WHERE T2.ID NOT IN ( SELECT ID FROM T1 )
이런 방법이 있을거 같구요 -
깜찏한그1녀
음.. 두 테이블에 insert 를 한 쿼리로 하시나요? 제 생각엔 insert 하시고 select 하셔서 no가 있으면 insert 없으면 roolback 하는게 어떨까요?