MySQL 오류: 저장된 함수/트리거 내에서 업데이트 금지
MySQL 저장 함수 또는 트리거 내에서 테이블을 업데이트하려고 할 때 다음이 발생할 수 있습니다. 오류 발생:
Error: Can't update table 'brandnames' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
이해하기 오류
이 오류는 INSERT 트리거가 실행되는 동안 테이블 수정을 금지하는 MySQL의 제한으로 인해 발생합니다. 이러한 수정은 잠재적으로 교착 상태 또는 무한 재귀 루프로 이어질 수 있습니다.
오류 방지
이 오류를 방지하려면 다음 접근 방식을 고려하세요.
NEW 및 OLD 사용 필드:
트리거 수정 컨텍스트:
BEFORE INSERT 사용 예시 트리거:
full_brand_name 필드가 있고 처음 두 글자를 대문자로 포함하는 short_name 필드를 생성해야 한다고 가정합니다.
CREATE TRIGGER `capital` BEFORE INSERT ON `brandnames` FOR EACH ROW BEGIN SET NEW.short_name = CONCAT(UCASE(LEFT(NEW.full_brand_name,1)) , LCASE(SUBSTRING(NEW.full_brand_name,2))) END
위 내용은 MySQL 저장 함수 또는 트리거 내에서 테이블을 업데이트할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!