Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

중복 데이터 삽입 방지를 위한 MySQL REPLACE 문 활용 방법

데이터를 삽입할 때 REPLACE 문을 사용하면 중복 데이터의 삽입을 효과적으로 방지할 수 있습니다. 일반적인 INSERT 명령 대신 REPLACE 명령을 사용하면, 해당 레코드가 새로운 데이터일 경우 INSERT와 동일한 방식으로 삽입됩니다. 반면 이미 존재하는 중복 레코드일 경우에는 기존 레코드가 삭제되고 새로운 레코드로 대체됩니다.

구문

REPLACE INTO table_name(…)

여기서 table_name은 값을 삽입하고자 하는 테이블의 이름을 의미합니다.

REPLACE 문이 중복 여부를 판단하려면 해당 테이블에 PRIMARY KEY 또는 UNIQUE 인덱스가 설정되어 있어야 한다는 점에 유의해야 합니다. 이 인덱스를 기준으로 동일한 키 값을 가진 레코드가 존재하는지 확인하기 때문입니다.

예시

다음 예시에서는 REPLACE 문을 사용하여 person_tbl 테이블에 데이터를 삽입하는 과정을 보여줍니다.

mysql> REPLACE INTO person_tbl (last_name, first_name)
    -> VALUES( 'Ajay', 'Kumar');
Query OK, 1 row affected (0.00 sec)

mysql> REPLACE INTO person_tbl (last_name, first_name)
    -> VALUES( 'Ajay', 'Kumar');
Query OK, 2 rows affected (0.00 sec)

첫 번째 실행에서는 'Ajay', 'Kumar'라는 레코드가 새로 삽입되었기 때문에 1개의 행이 영향을 받았습니다(Query OK, 1 row affected). 그러나 두 번째 실행에서는 동일한 레코드가 이미 존재했으므로, 기존 행이 삭제된 후 새로운 행이 삽입되어 2개의 행이 영향을 받았습니다(Query OK, 2 rows affected). 이처럼 영향받은 행의 수를 통해 REPLACE 문이 중복 데이터를 어떻게 처리했는지 확인할 수 있습니다.