>데이터 베이스 >MySQL 튜토리얼 >MySQL 삽입 또는 업데이트: 기본이 아닌 고유 키 열을 효율적으로 처리하는 방법은 무엇입니까?

MySQL 삽입 또는 업데이트: 기본이 아닌 고유 키 열을 효율적으로 처리하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-06 04:53:10661검색

MySQL Insert or Update: How to Handle Unique Non-Primary Key Columns Efficiently?

고유 조건에 따른 MySql 삽입 또는 업데이트

MySql 테이블에 데이터를 삽입하려면 업데이트를 수행하기 전에 데이터가 이미 존재하는지 확인해야 하는 경우가 많습니다. . 그러나 기본 키가 아닌 고유한 열을 처리할 때 기존 UPDATE 문은 부족합니다.

이 경우 사용자는 datenum 열이 없으면 AggregatedData 테이블에 데이터를 삽입하는 효율적인 방법을 찾습니다. , 또는 존재하는 경우 기존 행을 업데이트합니다.

해결책: INSERT ... ON DUPLICATE KEY UPDATE

Jai가 제안한 대로 가장 적합한 솔루션은 INSERT ... ON DUPLICATE KEY UPDATE 구문을 활용하는 것입니다.

INSERT INTO AggregatedData (datenum,Timestamp)
VALUES ("734152.979166667","2010-01-14 23:30:00.000")
ON DUPLICATE KEY UPDATE 
  Timestamp=VALUES(Timestamp)

이 문은 datenum이 다음과 같은 경우 삽입을 수행합니다. 찾을 수 없습니다. 존재하는 경우 VALUES() 함수에 제공된 값으로 Timestamp 열을 업데이트합니다.

설명

VALUES() 함수는 업데이트에 사용되는 값이 INSERT 문에 지정된 값과 동일한지 확인합니다. 이렇게 하면 실수로 열 값이 업데이트되는 것을 방지할 수 있습니다.

INSERT ... ON DUPLICATE KEY UPDATE의 장점

  • 데이터를 삽입하거나 업데이트하는 단일 문을 제공하여 코드입니다.
  • 중복을 방지하여 데이터 무결성을 유지합니다.
  • 중복 검사를 방지하여 최적화된 성능을 제공합니다.

위 내용은 MySQL 삽입 또는 업데이트: 기본이 아닌 고유 키 열을 효율적으로 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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