두 번 지정된 테이블: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!