여러 MySQL 테이블에 걸친 동시 업데이트
비정규화 목적으로 동일한 값 업데이트가 필요한 여러 테이블로 작업할 때 수행하는 작업이 비효율적일 수 있습니다. 각 테이블에 대한 별도의 업데이트. 다행스럽게도 MySQL은 다중 테이블 업데이트를 사용하여 이러한 업데이트를 단일 작업으로 결합하는 방법을 제공합니다.
다음 시나리오를 고려하십시오.
<code class="sql">-- Table One Update UPDATE Table_One SET win = win+1, streak = streak+1, score = score+200 WHERE userid = 1 AND lid = 1 LIMIT 1 -- Table Two Update UPDATE Table_Two SET win = win+1, streak = streak+1, score = score+200 WHERE userid = 1 LIMIT 1</code>
이 예에서는 두 테이블 모두 동일해야 합니다. 표 2에 "lid" 필드가 없는 것을 제외하고 값이 업데이트됩니다. 이러한 업데이트를 결합하려면 다음과 같이 다중 테이블 업데이트를 사용할 수 있습니다.
<code class="sql">UPDATE Table_One a INNER JOIN Table_Two b ON (a.userid = b.userid) SET a.win = a.win+1, a.streak = a.streak+1, a.score = a.score+200, b.win = b.win+1, b.streak = b.streak+1, b.score = b.score+200 WHERE a.userid = 1 AND a.lid = 1 AND b.userid = 1</code>
이 쿼리에서는 "INNER JOIN" 문을 사용하여 "userid" 열에서 두 테이블을 조인합니다. 일치하는 행만 업데이트됩니다. "SET" 절은 두 테이블 모두에 대한 업데이트 값을 정의합니다.
다중 테이블 업데이트는 "LIMIT" 절을 지원하지 않으므로 잠재적으로 의도한 것보다 더 많은 행을 업데이트할 수 있다는 점에 유의하는 것이 중요합니다. 이러한 경우 업데이트를 보다 세부적으로 제어하려면 저장 프로시저나 트랜잭션을 사용하는 것이 좋습니다.
위 내용은 동일한 값으로 여러 MySQL 테이블을 효율적으로 업데이트하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!