>  기사  >  데이터 베이스  >  존재에 따라 MySQL에서 레코드를 효율적으로 업데이트하거나 삽입하는 방법은 무엇입니까?

존재에 따라 MySQL에서 레코드를 효율적으로 업데이트하거나 삽입하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-15 13:12:02137검색

How to Efficiently Update or Insert Records in MySQL Based on Their Existence?

MySQL: 존재에 따라 레코드 업데이트 또는 삽입

데이터베이스를 다룰 때 업데이트하거나 업데이트해야 하는 시나리오에 직면하는 것이 일반적입니다. 또는 존재 여부에 따라 레코드를 삽입할 수 있습니다. PHP 및 MySQL로 작업하는 경우 이 질문이 자주 발생합니다.

이러한 맥락에서 원래 쿼리는 IF EXISTS 구문을 사용하여 업데이트 및 삽입 문을 병합하려고 시도합니다. 그러나 이것이 가장 효율적인 접근 방식은 아닙니다.

원하는 기능을 얻으려면 INSERT ... ON DUPLICATE KEY UPDATE 구문 사용을 고려해야 합니다. 올바른 구문은 다음과 같습니다.

INSERT INTO <table> (field1, field2, field3, ...) 
VALUES ('value1', 'value2','value3', ...)
ON DUPLICATE KEY UPDATE
field1='value1', field2='value2', field3='value3', ...

이 구문을 사용하면 단일 쿼리에서 INSERT 및 UPDATE 작업을 모두 수행할 수 있습니다. 레코드가 존재하지 않으면(기본 키 또는 고유 인덱스를 기준으로) 삽입됩니다. 레코드가 이미 존재하는 경우 제공된 값으로 업데이트됩니다.

각 행에 대해 영향을 받는 행 값은 다음과 같습니다.

  • 행이 다음과 같은 경우 1입니다. 새 행으로 삽입됩니다.
  • 기존 행이 업데이트되는 경우 2.
  • 기존 행이 현재 행으로 설정된 경우 0

이 접근 방식은 업데이트 및 삽입 작업을 별도로 처리하는 것보다 더 효율적이고 유지 관리가 쉽습니다.

위 내용은 존재에 따라 MySQL에서 레코드를 효율적으로 업데이트하거나 삽입하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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