>  기사  >  데이터 베이스  >  MySQL 업데이트 쿼리에서 '테이블이 두 번 지정됨' 오류를 수정하는 방법은 무엇입니까?

MySQL 업데이트 쿼리에서 '테이블이 두 번 지정됨' 오류를 수정하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-12 06:46:01903검색

How to Fix

두 번 지정된 테이블: MySQL에서 업데이트 충돌 해결

업데이트 대상이자 별도 테이블로 나타나는 테이블을 업데이트하려고 할 때 데이터 원본을 사용하지 않으면 MySQL에서 "'table_name' 테이블이 'UPDATE'의 대상과 별도의 데이터 소스로 두 번 지정되었습니다."라는 오류가 발생할 수 있습니다. 이 문제는 쿼리에서 동일한 테이블을 여러 번 참조할 때 발생합니다.

구체적으로 이 오류 메시지는 관리자 테이블이 UPDATE 작업의 대상 테이블과 선택을 위한 데이터 소스로 모두 사용되고 있음을 나타냅니다. Branch_master 테이블의 데이터입니다. 이러한 이중 참조는 MySQL을 혼란스럽게 할 수 있습니다.

해결책

해결책은 데이터 소스의 테이블을 파생 테이블로 분리하는 것입니다. 원래 테이블의 데이터를 보관하기 위해 날아갑니다. 이렇게 하면 쿼리의 모호성을 피할 수 있습니다.

쿼리에서 다음 줄을

FROM manager AS m2

다음 줄로 바꾸세요.

FROM (select * from manager) AS m2

이렇게 하면 원래 관리자 테이블의 모든 데이터가 포함된 m2라는 파생 테이블.

업데이트된 쿼리

다음은 테이블 충돌 오류를 해결하는 업데이트된 쿼리입니다.

UPDATE manager
SET status = 'Y'
WHERE branch_id IN
(
  select branch_id
  FROM (select * from manager) AS m2
  WHERE (branch_id, year) IN
  (
    SELECT branch_id, year
    FROM branch_master
    WHERE type = 'finance'
  )
);

파생 테이블을 사용하면 관리자 테이블이 쿼리에서 한 번만 참조되도록 하여 MySQL에서 "테이블이 두 번 지정되었습니다" 오류가 발생하는 것을 방지할 수 있습니다.

위 내용은 MySQL 업데이트 쿼리에서 '테이블이 두 번 지정됨' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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