- 전체
- Sample DB
- database modeling
- [표준 SQL] Standard SQL
- G-SQL
- 10-Min
- ORACLE
- MS SQLserver
- MySQL
- SQLite
- postgreSQL
- 데이터아키텍처전문가 - 국가공인자격
- 데이터 분석 전문가 [ADP]
- [국가공인] SQL 개발자/전문가
- NoSQL
- hadoop
- hadoop eco system
- big data (빅데이터)
- stat(통계) R 언어
- XML DB & XQuery
- spark
- DataBase Tool
- 데이터분석 & 데이터사이언스
- Engineer Quality Management
- [기계학습] machine learning
- 데이터 수집 및 전처리
- 국가기술자격 빅데이터분석기사
- 암호화폐 (비트코인, cryptocurrency, bitcoin)
MySQL [MySQL] 트리거(Trigger)란? 트리거 사용 예제
2023.07.19 23:13
[MySQL] 트리거(Trigger)란? 트리거 사용 예제
트리거(Trigger)?
Table에 어떤 신호가 가해졌을 때 미리 정해진 활동이 자동으로 실행되는 것.
구체적으로 특정 테이블에 INSERT, DELETE, UPDATE 같은 "DML"문이 수행될 때, 데이터베이스에서 자동으로 동작.
사용자호출 필요없음, 자동으로 동작!
기존 테이블

1. 테이블에 새로운 사람 가입 (INSERT 문)
INSERT INTO user_address_table VALUES ('1234', 'yoon', 'suwon');
SELECT * FROM user_address_table

2. 테이블의 내용 바꾸기 (UPDATE 문)
UPDATE user_address_table SET address = 'busan' WHERE name = 'Yoon'
3. 테이블에서 제거하기 (DELETE 문)
DELETE FROM user_address_table WHERE name = 'Yoon';
4. 제거된 사람의 데이터베이스 테이블 추가 (제거된 데이터 까지 관리)
관리를 위한 새로운 테이블을 생성함!
CREATE TABLE removedName (
ID char(8),
Name char(8),
Address char(20),
deletedDate date -- 삭제 날
);
5. 위 과정으로 트리거 생성하기!
DELIMITER //
CREATE TRIGGER check_removed_name
AFTER DELETE -- 삭제 되면 작동
ON user_address_table -- 어떤 테이블에?
FOR EACH ROW -- 각 row(행) 마다 적용
-- 테이블에 백업데이터 삽입
BEGIN
INSERT INTO removedName
VALUES (OLD.ID, OLD.Name, OLD.Address, CURDATE() );
END
// DELIMITER ;
(테스트 해보기)
이제 user_address_table의 내용을 하나 삭제해본다.
DELETE FROM user_address_table WHERE Name = 'Tom' ;
(결과) 트리거에 의해 자동으로 Tom 데이터가 removedname에 저장됨을 확인 할 수 있다.

[출처] https://ansan-survivor.tistory.com/1156
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.

