MySQL의 기본 테이블에서 삭제한 후 종속 테이블에서 레코드를 올바르게 삭제하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-03 08:18:02
원래의
838명이 탐색했습니다.

How to Correctly Delete Records from a Dependent Table After Deleting from the Main Table in MySQL?

MySQL 트리거: 기본 테이블에서 삭제 후 종속 테이블에서 레코드 삭제

데이터베이스 스키마에서는 다음과 같은 여러 테이블을 갖는 것이 일반적입니다. 그들 사이의 관계. 기본 테이블에서 레코드를 조작하는 경우 종속 테이블에서도 해당 작업을 수행해야 할 수 있습니다. MySQL 트리거는 이러한 작업을 자동화하는 편리한 방법을 제공합니다.

patrons라는 테이블이 개인에 대한 정보를 저장하고,patron_info라는 관련 테이블에 각 후원자에 대한 추가 세부 정보가 포함되어 있는 시나리오를 생각해 보세요. Patrons 테이블에서 후원자가 제거되면,patron_info 테이블에서도 해당 정보를 삭제하는 것이 바람직합니다.

이를 달성하기 위해 DELETE 트리거를 사용할 수 있습니다. 그러나 다음 코드를 사용하여 트리거를 생성하려고 할 때 구문 오류가 발생했습니다.

CREATE TRIGGER log_patron_delete AFTER DELETE on patrons
FOR EACH ROW
BEGIN
DELETE FROM patron_info
    WHERE patron_info.pid = patrons.id
END
로그인 후 복사

오류(1046: 6행의 END 근처 구문 확인)는 트리거 코드 구문에 문제가 있음을 나타냅니다. 자세히 살펴보면 삭제된 후원자의 ID를 올바르게 참조하려면 DELETE 문 내에서patrons.id 대신 old.id 구문을 사용해야 합니다.

수정된 트리거 코드는 다음과 같습니다.

CREATE TRIGGER log_patron_delete AFTER DELETE on patrons
FOR EACH ROW
BEGIN
DELETE FROM patron_info
    WHERE patron_info.pid = old.id;
END
로그인 후 복사

코드의 특정 문자를 처리하기 위해 콘솔 창에 트리거 코드를 입력할 때 구분 기호(예: $ 또는 //)를 사용해야 할 수 있다는 점에 유의하는 것이 중요합니다. 또한 DELETE 문 끝에 세미콜론을 포함하는 것을 잊지 마십시오.

이러한 지침에 따라 트리거는 후원자 테이블에서 기록이 삭제될 때마다 Patront_info 테이블에서 기록을 성공적으로 삭제하여 데이터를 보장합니다. 데이터베이스 내의 일관성과 무결성.

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

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