[Practice] 트리거

2020. 9. 30. 19:01Database/Practice

1. 트리거

1) 테이블 생성

트리거 실행을 확인하기 위해 회원 탈퇴 테이블을 생성해준다.

DROP DATABASE IF EXISTS bns; 
CREATE DATABASE bns; 
USE bns; 

DROP TABLE IF EXISTS user; 
CREATE TABLE user ( 
  id VARCHAR(20) NOT NULL COMMENT '유저 아이디', 
  name VARCHAR(20) NOT NULL COMMENT '유저 이름', 
  level TINYINT UNSIGNED NOT NULL COMMENT '유저 레벨', 
  money INT UNSIGNED NOT NULL COMMENT '소지금', 
  choo VARCHAR(20) NULL COMMENT '추천인', 
  PRIMARY KEY(id)
) COMMENT '캐릭터정보';  

DROP TABLE IF EXISTS user_joinout; 
CREATE TABLE user_joinout ( id CHAR(20), money INT UNSIGNED );

2) 데이터 삽입

INSERT INTO user VALUES ('chulsu', '김철수', 70, 100000, NULL); 
INSERT INTO user VALUES ('jrich', '안지환', 7, 1000, NULL); 
INSERT INTO user VALUES ('ruina', '김나라', 47, 49000, 'chulsu'); 
INSERT INTO user VALUES ('jamie', '조아라', 29, 12000, 'ruina'); 
INSERT INTO user VALUES ('yoma', '아리수', 1, 500, NULL); 

3) 트리거

순서 내용
1 회원 탈퇴 시 탈퇴 테이블에 회원의 정보를 추가해주는 트리거 생성 및 확인

- 실행 쿼리문

더보기

/* 회원 탈퇴 시 탈퇴 테이블에 회원의 정보를 추가해주는 트리거 생성 및 확인 */
DELIMITER //
CREATE TRIGGER joinout_trig AFTER DELETE ON user FOR EACH ROW
BEGIN
  INSERT INTO user_joinout VALUES (OLD.id, OLD.money);
END //
DELIMITER ;

DELETE FROM user WHERE id = 'chulsu';

SELECT * FROM user_joinout;

728x90

'Database > Practice' 카테고리의 다른 글

[Practice] Redis Sentinel  (0) 2020.10.08
[Practice] Redis Replication (Master-Slave)  (0) 2020.10.08
[Practice] 저장 프로시저, 저장 함수  (0) 2020.09.30
[Practice] 인덱스, 변수  (0) 2020.09.30