Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 개발자스터디
- 자바
- 운영체제
- til
- AWS
- 스파르타내일배움캠프
- 컴퓨터개론
- 중심사회
- 99일지
- 내일배움캠프
- MySQL
- Flutter
- 부트캠프
- 컴퓨터구조론 5판
- Spring
- 개인공부
- 항해
- java
- 99클럽
- 프로그래머스
- Python
- 개발자블로그
- 코딩테스트
- 소프트웨어
- 백준
- 스파르타코딩클럽
- wil
- 스파르타내일배움캠프TIL
- 스파르타내일배움캠프WIL
- 국비
Archives
- Today
- Total
컴공생의 발자취
[MySql] 트리거(Trigger) 사용 예제 본문
728x90
반응형
먼저, 트리거 예제를 사용해보기에 앞서 test 테이블을 만들었다.
1. 테스트할 테이블 만들기
2. 테스트할 테이블 내용 넣기
test 테이블
데이터는 다음과 같이 넣어줬다.
* 2개만 넣어줘도 확인 가능하다. *
3. 삭제된 데이터를 관리할 테이블 만들기
트리거를 사용해서 제거된 데이터를 관리할 것이다.
그러므로 제거된 데이터를 관리할 테이블을 만든다.
test 테이블의 Column과 똑같이 만든다.
4. 트리거 생성하기
DELIMITER //
CREATE TRIGGER check_removed_name
AFTER DELETE -- 삭제 되면 작동
ON test -- 어떤 테이블에?
FOR EACH ROW -- 각 row(행) 마다 적용
-- 테이블에 백업데이터 삽입
BEGIN
INSERT INTO delete_test
VALUES (OLD.name, OLD.age, OLD.num);
END
// DELIMITER ;
* DELIMITER은 문장을 구분해주기 위해 사용되며 입력해줘야 오류가 안난다.
* OLD : 이벤트가 일어나기 이전 데이터 , NEW : 이벤트가 일어난 이후 데이터
* OLD.컬럼명 또는 NEW.컬럼명으로 사용한다.
5. 데이터 삭제하기
DELETE FROM test WHERE `name` like '시험' ;
* 만일 다음과 같은 오류가 뜬다면*
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. 0.016 sec
set sql_safe_updates=0;
위와 같이 sql로 환경변수를 변경해준다. (일시적인 Safe모드 해제)
6. delete_tese 테이블 확인
위와 같이 나온다면 정상적으로 트리거가 작동된 것이다.
728x90
반응형
'🟦 DB' 카테고리의 다른 글
[MySQL] localhost server 생성 (0) | 2023.02.20 |
---|---|
[MySQL] Workbench 설치 (0) | 2023.02.20 |
[MySql] 홑따옴표('), 쌍따옴표("), 역슬래시(\) 삽입 (0) | 2022.12.08 |
[MySql] DBManager singleton 구현 예시 (0) | 2022.12.05 |