> 데이터 베이스 > MySQL 튜토리얼 > MySQL 트리거를 사용하여 다른 테이블에서 데이터를 삭제한 후 한 테이블에서 데이터를 올바르게 삭제하는 방법은 무엇입니까?

MySQL 트리거를 사용하여 다른 테이블에서 데이터를 삭제한 후 한 테이블에서 데이터를 올바르게 삭제하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-03 16:25:03
원래의
485명이 탐색했습니다.

How to Correctly Delete Data from One Table After Deleting from Another Using MySQL Triggers?

MySQL 트리거: 다른 테이블을 삭제한 후 한 테이블에서 삭제

문제:

귀하 테이블 1(patrons)에서 행이 삭제될 때마다 테이블 2(patron_info)에서 행을 자동으로 삭제하는 트리거를 생성하려고 합니다. 그러나 트리거를 생성할 때 구문 오류가 발생합니다.

해결 방법:

이 오류는 트리거 내 DELETE 문의 잘못된 구문으로 인해 발생할 수 있습니다. . 특히, 다음 트리거에 따라 삭제된 행의 ID를 참조하려면 Patrons.id 대신 old.id를 사용해야 합니다.

<code class="sql">CREATE TRIGGER log_patron_delete AFTER DELETE ON patrons
FOR EACH ROW
BEGIN
  DELETE FROM patron_info
  WHERE patron_info.pid = old.id;
END</code>
로그인 후 복사

; DELETE 문 끝에서 트리거의 다른 부분에서도 구문이 올바른지 확인하세요.

또한 콘솔 창에 트리거 코드를 입력할 때 구분 기호를 사용하는 것을 잊지 마세요. 예를 들어 다음과 같이 $를 구분 기호로 사용할 수 있습니다.

<code class="sql">DELIMITER $

CREATE TRIGGER log_patron_delete AFTER DELETE ON patrons
FOR EACH ROW
BEGIN
  DELETE FROM patron_info
  WHERE patron_info.pid = old.id;
END$

DELIMITER ;

$</code>
로그인 후 복사

위 내용은 MySQL 트리거를 사용하여 다른 테이블에서 데이터를 삭제한 후 한 테이블에서 데이터를 올바르게 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿