MySQL에서 동시에 여러 테이블 업데이트
데이터베이스 작업 시 여러 테이블의 값을 한 번에 업데이트해야 할 수도 있습니다. 세분성 수준 또는 추가 조건. 일반적인 시나리오는 비정규화를 위해 여러 테이블에 동일한 데이터가 필요한 경우입니다.
이러한 경우 각 테이블에 대해 별도의 UPDATE 쿼리를 수행하는 것은 비효율적이고 중복될 수 있습니다. 이 문서에서는 여러 UPDATE 작업을 하나의 통합 쿼리로 결합하는 것이 가능한지 여부에 대한 질문을 다룹니다.
다중 테이블 업데이트
MySQL 문서에서는 다음을 사용하는 솔루션을 제공합니다. 다중 테이블 업데이트. 이 접근 방식을 사용하면 공통 열이나 표현식을 사용하여 테이블을 조인하여 동일한 쿼리 내에서 여러 테이블을 업데이트할 수 있습니다. 다중 테이블 업데이트의 구문은 다음과 같습니다.
UPDATE table1 INNER JOIN table2 ON (table1.column = table2.column) SET table1.column1 = ..., table1.column2 = ..., table2.column1 = ..., table2.column2 = ... WHERE ...
예
문제 설명에 제시된 질문을 고려하세요. 열에 약간의 차이가 있는 두 테이블 동일한 업데이트가 필요합니다. 다중 테이블 업데이트 접근 방식을 사용하면 두 개의 UPDATE 쿼리를 하나로 결합할 수 있습니다.
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
이 예에서 Table_One에는 Table_Two에 없는 추가 열(lid)이 있습니다. 조인 조건은 일치하는 행에서만 업데이트가 수행되도록 보장합니다.
제한 사항
다중 테이블 업데이트는 여러 테이블을 한 번에 업데이트하는 편리한 방법을 제공하지만, 몇 가지 제한 사항이 있습니다:
대체 솔루션
특정 요구 사항에 따라 다중 테이블 업데이트 대신 고려해야 할 대체 솔루션이 있습니다.
위 내용은 MySQL은 단일 쿼리로 여러 테이블을 동시에 업데이트할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!