>데이터 베이스 >MySQL 튜토리얼 >MySQL에 삽입하거나 업데이트할 때 고유 키 제약 조건을 처리하는 방법은 무엇입니까?

MySQL에 삽입하거나 업데이트할 때 고유 키 제약 조건을 처리하는 방법은 무엇입니까?

DDD
DDD원래의
2025-01-24 02:52:09895검색

How to Handle Unique Key Constraints When Inserting or Updating in MySQL?

MySQL에서 고유 키 제약 조건을 사용하여 삽입 또는 업데이트

중복 키 제약 조건을 처리해야 하는 경우 MySQL 테이블에 행을 삽입하거나 업데이트하는 것이 까다로울 수 있습니다. 이 문제를 해결하기 위해 MySQL은 다용도의 "INSERT ... ON DUPLICATE KEY UPDATE" 문을 제공합니다.

질문에 명시된 대로 고유 키가 있는 테이블에 행을 삽입하려고 합니다. 그러나 동일한 고유 키를 가진 행이 이미 존재하는 경우 해당 값을 업데이트하려고 합니다.

일반적으로 행을 삽입하면 고유 키 제약 조건을 위반하여 오류 메시지가 표시됩니다. "INSERT IGNORE"는 오류를 억제하지만 업데이트 작업을 수행하지는 않습니다.

해결책: 중복 키 업데이트에 삽입...

해결책은 "INSERT ... ON DUPLICATE KEY UPDATE" 구문을 사용하는 것입니다. 제공된 예를 사용하여 이 쿼리를 분석해 보겠습니다.

<code class="language-sql">INSERT INTO table_name (ID, NAME, AGE) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE
NAME="A", AGE=19</code>
  • INSERT INTO: 중복 키가 없으면 지정된 테이블("table_name")에 새 행을 삽입합니다.
  • (ID, NAME, AGE): 새 행에 채워질 열을 지정합니다.
  • VALUES(1, "A", 19): 삽입할 값을 제공합니다.
  • 중복 키 업데이트 시: 핵심 부분. 고유 키(이 경우 "ID")에 대해 동일한 값을 가진 행이 이미 테이블에 존재하는 경우 업데이트 작업이 트리거됩니다.
  • NAME="A", AGE=19: 업데이트할 필드와 새 값을 지정합니다.

지침:

ID=1인 행이 테이블에 없으면 제공된 값을 사용하여 새 행이 삽입됩니다. 그러나 ID=1인 행이 이미 존재하는 경우 "NAME" 및 "AGE" 열만 지정된 값으로 업데이트되고 "ID"는 변경되지 않습니다.

위 내용은 MySQL에 삽입하거나 업데이트할 때 고유 키 제약 조건을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.