MySQL 테이블 병합: 전체 가이드
동일한 구조로 두 개의 MySQL 테이블을 병합하면 기본 키 충돌 가능성으로 인해 고유한 문제가 발생합니다. 그러나 이 작업을 수행하는 몇 가지 효과적인 방법이 있습니다.
방법 1: 무시 삽입
table_1의 기존 행을 유지하고 table_2에 새 행만 삽입하려면 다음 쿼리를 사용할 수 있습니다.
<code class="language-sql">INSERT IGNORE INTO table_1 SELECT * FROM table_2;</code>
방법 2: 교체
또는 새 행을 삽입하는 동안 table_1의 기존 행을 table_2의 해당 행으로 바꾸려면 다음 쿼리를 사용할 수 있습니다.
<code class="language-sql">REPLACE INTO table_1 SELECT * FROM table_2;</code>
기본 키 충돌에 대한 참고 사항
INSERT IGNORE 및 REPLACE 메소드는 기본 키 충돌을 다르게 처리합니다. INSERT IGNORE는 기본 키 값과 충돌하지 않고 새 행을 삽입합니다. REPLACE는 기본 키 충돌에 관계없이 기존 행을 업데이트합니다.
예
다음 데이터가 포함된 두 개의 테이블 table_1과 table_2를 생각해 보세요.
table_1 | |
---|---|
id | name |
1 | John |
2 | Mary |
table_2 | |
---|---|
id | name |
1 | Mike |
2 | Sarah |
3 | Peter |
INSERT IGNORE를 사용하여 쿼리하면 결과는 다음과 같습니다.
table_1 | |
---|---|
id | name |
1 | John |
2 | Mary |
3 | Peter |
기본 키가 일치하는 table_2의 행은 무시되고 기본 키가 없는 행만 삽입됩니다.
REPLACE 쿼리를 사용하면 결과는 다음과 같습니다.
table_1 | |
---|---|
id | name |
1 | Mike |
2 | Sarah |
3 | Peter |
기본 키가 일치하는 table_1의 행은 table_2의 해당 행으로 대체됩니다.
위 내용은 동일한 구조로 MySQL 테이블을 병합하고 기본 키 충돌을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!