INSERT와 적을 질의 ... 중복 키 Update에서
최대 Bossi가 작성한 기사
그것은 님의 아니라 쿼리의 적절한 관리는 안정적이고 효율적인 구현을위한 필수 조건이라고 알려져 있습니다.
이 문서에서는 우리가 알고 조금이지만 아주 강력한 구문을 제공합니다, 제가 중복 키 Update에서 조항에 대해 얘기하는 거예요.
이 조항은 INSERT 문을 동안 사용되며 그 용도가 확인합니다, 삽입하기 전에, 그러한 경우에, 엔진은 기본 키 (기본 키) 또는 고유 키 (고유 키)의 중복이 MySQL은 un'UPDATE가 공간에 삽입을 가지고 다니십시오.
(기사는 아래에 계속됩니다 ...)
이 조항의 장점은 분명하다 : 당신이 성능 및 코드 정리의 측면에서 장점이있는 대신 두 단일 쿼리를 써주세요.
가 실질적인 예를 봅시다. 저희 사이트를 방문자의 로깅을 수행하는 간단한 스크립트를 만들고 싶어합시다. 우리 DB의 테이블 구조 아래 :
- IP (키)
- numero_visite
- ultima_visita
문법 INSERT 덕분에 ... 중복 키 Update에서 우리는 단일 쿼리와 동일한 결과를 얻을 수 있습니다 :
ip_visitatori 값 ('123 .123.123.123 ', 1, 지금 ())에 삽입할
KEY DPLICATE ON
업데이트 numero_visite numero_visite = + 1 ultima_visita = NOW ();
IP가 삽입이 이루어집니다되지 않은 경우 따라서, 그렇지 않으면 당신은 영향을받는 레코드의 간단한 업데이 트를 실행합니다.
이 구문을 사용하면 30 %까지 동등한 성능 측면에서 혜택을 얻을 수 있습니다.
'약간의 상상력과 조항의 독창성으로 많은 상황에서 매우 유용있을 수 있습니다.
예를 들어 우리는 조건과 함께 그것을 사용할 수 있습니다.
자, 예를 봅시다 : 당신이 가상 경매 사이트에서 온라인 다음과 같이 구성에서 테이블을 가지고 가정 :
- ID_asta
- migliore_offerta
입찰 값 (1, 120)에 삽입할 KEY DPLICATE ON 업데이트 migliore_offerta = (값 (migliore_offerta) <120, 120 값 (migliore_offerta)) IF우리가 하나를 해결했습니다 간단한 쿼리를 통해 급습이 떨어 ... 그렇지 않으면 우리는 자원 (그리고 오류의 큰 위험)의 폐기물을 발생하는 여러 쿼리를 사용했을 거에요.






