>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 여러 테이블을 동시에 업데이트하려면 어떻게 해야 합니까?

MySQL에서 여러 테이블을 동시에 업데이트하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-11-03 05:59:30578검색

How can I Update Multiple Tables Simultaneously in 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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