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 중국어 웹사이트의 기타 관련 기사를 참조하세요!