"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > MySQL 트리거 내에서 동일한 테이블을 어떻게 업데이트할 수 있나요?

MySQL 트리거 내에서 동일한 테이블을 어떻게 업데이트할 수 있나요?

2024년 11월 18일에 게시됨
검색:994

How can I update the same table within a MySQL trigger?

동일 테이블 업데이트를 위한 MySQL 트리거 해결 방법

MySQL은 본질적으로 트리거가 할당된 동일한 테이블의 행을 업데이트하는 것을 제한하여 재귀 호출을 방지합니다. . 이러한 제한에도 불구하고 실행 가능한 해결 방법이 있습니다.

제안되는 해결 방법

트리거 내의 행을 직접 업데이트하는 대신 원하는 논리를 실행하는 저장 프로시저를 활용하세요. 이 방법은 행 업데이트 작업을 트리거에서 분리하고 제한을 우회할 수 있게 해줍니다.

다음 시나리오를 고려하세요.

CREATE TABLE MyTable (
  id INT PRIMARY KEY,
  attribute VARCHAR(255)
);

-- Trigger to insert a row into MyTable for each new parent product record
CREATE TRIGGER my_trigger AFTER INSERT ON Products
FOR EACH ROW
BEGIN
  -- Issue SQL statement to call a stored procedure that performs the insert
  CALL insert_attribute(NEW.id, 'Value');
END;

위의 예에서 my_trigger 트리거는 새로운 레코드가 Products 테이블에 삽입될 때 저장 프로시저 insert_attribute를 호출하여 MyTable에 행을 삽입합니다. 이는 제품 내에서 직접 행 업데이트 기능을 효과적으로 모방합니다. 트리거.

추가 고려 사항

이 해결 방법은 기능적인 솔루션 역할을 하지만 성능 및 유지 관리 측면에서 기존 트리거와 다르다는 점에 유의하는 것이 중요합니다. 저장 프로시저를 사용하면 직접 트리거 업데이트에 비해 데이터베이스 시스템에 추가 오버헤드와 복잡성이 발생할 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3