집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 트리거를 사용하여 다른 테이블에 행을 삽입하는 방법은 무엇입니까?
MySQL 트리거를 사용하여 다른 테이블에 행 삽입
MySQL과 같은 관계형 데이터베이스 관리 시스템에서 트리거는 특정 데이터베이스 작업을 자동화하는 데 중추적인 역할을 합니다. 데이터 삽입, 삭제, 수정 등의 특정 이벤트에 대한 응답입니다. 이러한 맥락에서, 주어진 테이블에 행을 삽입하면 다른 테이블에 행을 삽입하는 트리거를 생성하는 주제를 자세히 살펴보겠습니다.
문제 이해
The 목표는 각 행 삽입 이벤트를 모니터링하는 "설명" 테이블에 MySQL 트리거를 생성하는 것입니다. 새 댓글 행이 삽입되면 트리거는 다음 작업을 수행해야 합니다.
트리거 구조
이러한 기능을 구현하는 트리거의 기본 구조는 다음과 같습니다.
CREATE TRIGGER <trigger_name> AFTER INSERT ON <source_table> FOR EACH ROW BEGIN -- Retrieve the ID of the newly inserted row DECLARE last_insert_id INT; SET last_insert_id = LAST_INSERT_ID(); -- Insert data into the "activities" table INSERT INTO <target_table> (column_list) VALUES (new.column1, new.column2, ..., last_insert_id); END
트리거 구현
구현 시 다음 예를 고려하십시오.
-- Create the "comments" and "activities" tables CREATE TABLE comments ( comment_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, user_id INT UNSIGNED NOT NULL ) ENGINE=INNODB; 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; -- Create the trigger to insert data into the "activities" table CREATE TRIGGER comments_after_ins_trig AFTER INSERT ON comments FOR EACH ROW BEGIN -- Retrieve the ID of the newly inserted comment row DECLARE last_insert_id INT; SET last_insert_id = LAST_INSERT_ID(); -- Insert data into the "activities" table INSERT INTO activities (comment_id, user_id) VALUES (new.comment_id, new.user_id); END; -- Insert some data into the "comments" table INSERT INTO comments (user_id) VALUES (1), (2); -- Query the "comments" and "activities" tables to observe the results SELECT * FROM comments; SELECT * FROM activities;
쿼리를 실행하면 "설명" 테이블에 삽입된 각 설명 행에 해당 행이 자동으로 "활동" 테이블에 삽입됩니다. 이는 원하는 결과를 달성하는 데 있어 트리거의 효과를 보여줍니다.
위 내용은 MySQL 트리거를 사용하여 다른 테이블에 행을 삽입하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!