집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 트리거는 어떻게 별도의 활동 테이블에 행을 삽입하여 사용자 의견을 효율적으로 기록할 수 있습니까?
MySQL 트리거를 사용하여 다른 테이블에 행 삽입
데이터베이스 내에서 사용자 활동을 추적할 때 트리거는 강력한 도구가 될 수 있습니다. 지정된 테이블이 변경되면 특정 작업이나 계산이 자동으로 발생하도록 허용합니다. 이 시나리오에서 댓글 테이블에 트리거를 생성하면 활동 테이블에 해당 행을 삽입하여 사용자 작업이 기록됩니다.
마지막으로 삽입된 댓글 행을 식별하려면 LAST_INSERT_ID()를 사용할 수 있습니다. 이 함수는 가장 최근 삽입 작업에서 기본 키 열의 자동 증가된 값을 반환합니다.
마지막으로 삽입된 주석 행의 데이터는 새로 삽입된 값을 참조하는 NEW 키워드를 사용하여 저장할 수 있습니다. 예를 들어 댓글의 user_id 및 comment_id를 활동 테이블에 삽입하려면 다음 INSERT 문을 사용할 수 있습니다.
INSERT INTO activities (comment_id, user_id) VALUES (NEW.comment_id, NEW.user_id);
저장 프로시저는 추가적인 유연성을 제공할 수 있지만 이 경우 간단한 트리거로 충분합니다.
트리거 구조
트리거의 기본 구조는 다음과 같습니다.
CREATE TRIGGER <trigger_name> AFTER INSERT ON <table_name> FOR EACH ROW BEGIN -- Insert into activities table using the NEW keyword END
예
다음은 이러한 트리거를 구현하는 방법에 대한 완전한 예입니다.
DROP TABLE IF EXISTS comments; CREATE TABLE comments ( comment_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, user_id INT UNSIGNED NOT NULL ) ENGINE=InnoDB; DROP TABLE IF EXISTS activities; CREATE TABLE activities ( activity_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, comment_id INT UNSIGNED NOT NULL, user_id INT UNSIGNED NOT NULL ) ENGINE=InnoDB; DELIMITER # CREATE TRIGGER comments_after_ins_trig AFTER INSERT ON comments FOR EACH ROW BEGIN INSERT INTO activities (comment_id, user_id) VALUES (NEW.comment_id, NEW.user_id); END# DELIMITER ; INSERT INTO comments (user_id) VALUES (1), (2); SELECT * FROM comments; SELECT * FROM activities;
이 예는 다음을 만듭니다. 필요한 테이블을 선택하고, 일부 데이터를 주석 테이블에 삽입하고, 트리거가 해당 행을 활동에 삽입하는 방법을 보여줍니다. 테이블.
위 내용은 MySQL 트리거는 어떻게 별도의 활동 테이블에 행을 삽입하여 사용자 의견을 효율적으로 기록할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!