이상한 문제가 있습니다.MySQL - 하위 쿼리가 1 행 이상을 반환합니다 (이상한 것)
테이블의 레코드를 업데이트하려고합니다. 기본 키 (Unique 및 Not null)를 사용하여 업데이트 중입니다.
UPDATE `rxMaster` SET `Name`='Ac Electri' WHERE `rxMasterID`=13493;
다음과 같은 오류가 : 여기
쿼리입니다 내가 확신
ERROR 1242: 1242: Subquery returns more than 1 row
SQL Statement:
UPDATE `rxMaster` SET `Name`='Ac Electri' WHERE `rxMasterID`=13493;
, 나는 ID '13493'와 데이터베이스에 하나의 레코드 만 있습니다. 무슨 일이 일어나고 있는지 잘 모르겠습니다.
내가 무엇인지 놓치면 고쳐주세요.
참고 : 새 레코드를 만들고 그 레코드를 업데이트해도 문제가없는 경우입니다. 그러나 오래된 레코드를 업데이트하려고하면이 레코드를 얻습니다.
는 트리거 :ON UPDATE
트리거 것으로 보인다
-- trigger for drop and update a record in rxMaster table, affected in search_text table. --
DELIMITER $$
DROP TRIGGER IF EXISTS `tr_upd_rolodexSearch`$$
CREATE TRIGGER `tr_upd_rolodexSearch` AFTER UPDATE on `rxMaster`
FOR EACH ROW
BEGIN
CALL sp_rolodex_upd_searchindex(NEW.rxMasterID, NEW.Name, NEW.SearchName, NEW.Phone1);
END$$
DELIMITER ;
여기에는 하위 쿼리가 없습니다. 여러 행을 업데이트해도 문제가 없습니다. –
왜 이것이 하위 쿼리입니까? –
'rxMaster'에서'SELECT * '를 적용하여 쿼리를 다시 확인하십시오 WHERE'rxMasterID' = 13493; – sarwar026