programing

삭제된 경우 다른 테이블에 행을 삽입하는 트리거

telecom 2023. 11. 1. 22:08
반응형

삭제된 경우 다른 테이블에 행을 삽입하는 트리거

삭제된 ONE 행을 다른 테이블에 복제하는 트리거를 생성하려고 합니다.지금까지 한 행을 삭제했을 때 첫 번째 표 전체를 두 번째 표로 복사했지만 그다지 유용하지는 않았습니다.

Table1은 comment_id, file_id, user_id, comment_text, comment_datetime 및 parent가 있는 comment입니다.

Table 2는 comment_log로 delleted_comment_id, file_id, user_id, comment_text, comment_datetime 및 comment_delete_datetime입니다.

그래서 저는 사용자, 진행자 또는 관리자에 의해 삭제된 코멘트를 comment_log에 저장하고 싶습니다.

INSERT INTO comment_log(deleted_comment_id, file_id, user_id, comment_text,comment_datetime, comment_deletion_datetime)
SELECT comment.comment_id, file_id, user_id, comment_text, comment_datetime, CURRENT_TIMESTAMP
FROM comment

여기까지 왔는데, WHERE 뒤에 와 같은 것을 시도했지만 무엇을 넣어야 할지 모르겠습니다. old.comment_id는 이전 ID를 줘야 하는데, 댓글 테이블에서 해당 ID로 댓글만 얻을 수 있는 방법을 모르겠습니다.

삭제된 행의 열은 다음과 같이 트리거에서 사용할 수 있습니다.OLD.*, 그래서 저는 이렇게 할 겁니다.

INSERT INTO comment_log
SET deleted_comment_id = OLD.comment_id, 
    file_id = OLD.file_id, 
    user_id = OLD.user_id,
    comment_text = OLD.comment_text,
    comment_datetime = OLD.comment_datetime, 
    comment_deletion_datetime = CURRENT_TIMESTAMP;

언급URL : https://stackoverflow.com/questions/72208332/trigger-to-insert-row-into-another-table-if-deleted

반응형