집 >데이터 베이스 >MySQL 튜토리얼 >MySQL에서 여러 테이블을 동시에 업데이트하려면 어떻게 해야 합니까?
MySQL에서 동시에 여러 테이블 업데이트
관계형 데이터베이스로 작업할 때 여러 테이블의 관련 데이터를 동시에 업데이트해야 할 수도 있습니다. 한 번에 하나의 테이블만 수정할 수 있으므로 표준 업데이트 문을 사용하는 경우 이는 문제가 됩니다.
비정규화를 위해 두 테이블(Table_One 및 Table_Two)에 동일한 업데이트가 필요한 다음 시나리오를 고려해 보세요. 각 테이블에 대한 업데이트 쿼리는 거의 동일하지만 테이블 이름과 필드 가용성이 다릅니다.
별도 업데이트
일반적으로 이러한 업데이트는 별도로 실행됩니다.
UPDATE Table_One SET win = win+1, streak = streak+1, score = score+200 WHERE userid = 1 AND lid = 1 LIMIT 1; UPDATE Table_Two SET win = win+1, streak = streak+1, score = score+200 WHERE userid = 1 LIMIT 1;
다중 테이블 업데이트
그러나 MySQL은 다중 테이블 업데이트를 통해 보다 효율적인 솔루션을 제공합니다. 공통 필드(이 경우 "userid")에서 테이블을 조인하면 단일 쿼리로 두 테이블을 모두 업데이트할 수 있습니다.
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;
다중 테이블 업데이트가 수행된다는 점에 유의하는 것이 중요합니다. 주의 깊게 사용하지 않으면 의도하지 않은 업데이트가 발생할 수 있는 LIMIT 절을 지원하지 않습니다. 특정 시나리오에서는 저장 프로시저 또는 트랜잭션과 같은 대체 솔루션이 더 적합할 수 있습니다.
위 내용은 MySQL에서 여러 테이블을 동시에 업데이트하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!