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 | 31 |
Tags
- workbench
- 자바
- Git_명령어정리
- github
- 인스턴스
- DML
- Spring_오류정리
- 다이어그램
- MySQL
- Git_정리
- 배열
- 이클립스
- HTML
- SQL_용어정리
- jsp
- java
- git
- 인덱스
- asp.net
- Linux
- SQL
- CSS
- Spring_에러정리
- Linux_명령어정리
- JavaScript
- vb.net
- json
- spring
- 아파치톰캣
- 자바스크립트
Archives
- Today
- Total
데브마우스
[SQL] 트리거와 NEW와 OLD 테이블 정리 본문
트리거란 무엇인가요?
트리거(Trigger)란 한국어로 방아쇠입니다. 방아쇠를 당기면 총의 총알이 나가듯, SQL에서는 특정 행동을 하면 바로 다른 행동이 일어나도록 만들 수 있습니다.
트리거는 어떻게 사용하나요?
트리거는 테이블의 DML문(INSERT, UPDATE, DELETE 등)의 이벤트가 발생할 때 작동합니다. 테이블에 프로그램 코드를 부착해서 사용합니다.
트리거 코드 형식은 다음과 같습니다.
DELIMITER $$
CREATE TRIGGER 트리거_이름
[BEFORE | AFTER] [INSERT | UPDATE | DELETE]
ON 테이블_이름
FOR EACH ROW
BEGIN
-- 트리거 실행 시 작동되는 코드
END $$
DELIMITER ;
NEW와 OLD 테이블 정리
트리거와 연결된 테이블에서 DML(INSERT, UPDATE, DELETE)을 실행할 때는 임시로 사용되는 시스템 테이블이 2개 있습니다. NEW와 OLD 테이블은 MySQL이 생성하고 관리합니다.
NEW와 OLD 테이블은 사용 시 아래 방법으로 작동합니다.
NEW 작동 방법:
INSERT(데이터) → NEW 테이블(데이터) → 테이블(데이터)
테이블에 데이터가 들어가기 전에 NEW 테이블에 잠시 들어있다가 테이블로 데이터가 들어갑니다.
DELETE 작동 방법:
DELETE(데이터) → 테이블(삭제된 데이터) → OLD 테이블(데이터)
DELETE문을 사용하면 삭제될 데이터가 OLD 테이블에 잠깐 들어있습니다. 그 덕분에 삭제된 후에 OLD.열_이름 형식으로 예전 데이터에 접근할 수 있습니다.
UPDATE 작동 방법:
UPDATE(넣을 데이터, 사라질 데이터) → NEW 테이블(넣을 데이터) → 테이블(넣을 데이터) → ODL 테이블(사라질 데이터)
UPDATE를 사용하면 NEW 테이블과 OLD 테이블을 모두 사용합니다.
'데이터베이스 > SQL: 정리' 카테고리의 다른 글
[SQL] 뷰에서 별칭 사용 시 주의사항 정리 (0) | 2024.01.14 |
---|---|
[SQL] SQL 1차 요점 정리: DML, DCL, JOIN (0) | 2024.01.06 |
[MySQL] 스토어드 함수와 커서 정리 (0) | 2024.01.05 |
[MySQL] 스토어드 프로시저 사용법 정리 (0) | 2024.01.05 |
[SQL] 인덱스의 사용 방법 정리 (0) | 2024.01.05 |