중복되지 않은 데이터만 insert into 하는 방법 0 1 10,353

by dnfrkwhr [2014.04.15 19:47:26]



아래와 같은 테이블이 있습니다.
 
번호    이름    나이    
1 A 10
2 B 15
. . .
.       .       .
.       .       .
                             
insert into문을 사용하여 위와 같이 데이터를 삽입했습니다.
중복되지 않은 데이터만 삽입하는 방법을 알고 싶습니다.
감사합니다.
by 신이만든짝퉁 [2014.04.16 00:35:28]
어디에 있는 중복 데이터를 어디에 삽입하겠다는 의미인지 모호합니다.

1. 위와 같은 테이블(중복이 없는)이 있고, 1건마다 입력 시 중복검사를 하고 싶다면 번호, 이름, 나이에 PK 또는 UNIQUE 제약조건을 걸면 해결 될 일입니다.

2. 위와 같은 테이블(중복이 없는)에, 중복이 있는 다량의 데이터를 중복을 제거하여 한번에 넣고 싶다면 DISTINCT를 사용하여 중복집합에서의 중복을 제거하고,  NOT EXISTS  구문을 사용하여 위 테이블과의 중복을 제거하여 데이터를 넣으시면 될 것입니다.
예 : INSERT INTO 중복없는테이블 (번호, 이름, 나이) SELECT DISTINCT 번호, 이름, 나이 FROM 중복있는테이블 A WHERE NOT EXISTS (SELECT 1 FROM 중복없는테이블 WHERE 번호=A.번호 AND 이름=A.이름 AND 나이=A.나이)

3. 위 테이블(중복이 발생해도 되는)에 다량의 데이터를 중복만 제거하여 한번에 넣고 싶다면, 중복집합이 있는 테이블에 DISTINCT 를 하여 넣으면 될 것입니다.
예 : INSERT INTO 중복가능테이블 (번호, 이름, 나이) SELECT DISTINCT 번호, 이름, 나이 FROM 중복있는테이블
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입