티스토리 뷰

 

회사 업무에서 trigger 관련 업무를 하게 되어, trigger에 대한 개념을 확인하고 간단한 실습을 해보았다.

아래 블로그를 보며 개념을 익히고 간단한 실습을 진행하였다.

 

트리거(TRIGGER) 란 무엇인가? 실습을 통한 기초 이해하기

오늘 포스팅에서는 트리거에 대한 기초를 간단한 예제를 통해 이해하도록 해보겠습니다. 트리거에 대한 깊은 내용은 추후에 다루도록 하겠습니다. 트리거(TRIGGER) 테이블에 대한 이벤트에 반응

hanhyx.tistory.com

 

트리거(Trigger)란?


테이블에 대한 이벤트에 반응해 '자동으로 실행'되는 작업을 의미한다.

테이블에 insert, update, delete 작업 발생 시 자동으로 실행되는 코드를 말한다.

어떤 트랜잭션이 일어나면 거기에 반응해서 다른 명령을 실행하게 하는 기능이다.



나는 mac 유저이고 db로 mysql, db 관리 툴로는 sequel ace 앱을 설치했다.

먼저 터미널을 실행하고 brew 명령어를 통해 mysql을 설치한다. 나는 아래와같은 명령어 순으로 진행했다.

brew -update // 먼저 brew를 업데이트 해준다.
brew install mysql
brew list // mysql이 잘 설치되었는지 목록 확인가능.

 

그리고 디비관리툴 sequel ace를 실행하고 로컬 테스트 디비 생성 완료. 사용법을 모르시는분은 아래 블로그 참고.

 

🍎 Mac 데이터베이스 앱 : Sequel Ace 사용 방법 🍎

Sequel Ace는 MySQL 및 MariaDB 데이터베이스 작업을 위한 Mac 데이터베이스 관리 애플리케이션이다. 업무를 할때 자주 사용하는 애플리케이션인데 개인적으로는 편리하다. Sequel Ace 다운링크 데이터 베

da-young.tistory.com

 

나는 아래와 같은 순서로 명령문을 실행해가며 트리거가 어떻게 동작하는지 테스트해보았다.

1. 멤버 테이블 생성
2. 멤버 데이터 insert
3. 삭제멤버 테이블 생성
4. 트리거 생성
5. 생성한 트리거 확인
6. 멤버삭제
7. 삭제멤버 테이블에 멤버데이터 insert 확인 => 트리거 정상작동 확인 완료
8. 트리거 삭제

 

insert into memberTBL
values ('id-1111', '홍길동', '010-1111-1111');

insert into memberTBL
values ('id-3333', '이순신', '010-3333-3333');

insert into memberTBL
values ('id-2222', '홍길순', '010-2222-2222');


select * from membertbl;
-- delete from membertbl;


create table deleteMemberTBL (
	id varchar(15),
	name varchar(15),
	phone varchar(20),
	deleteDate date
);

sequel ace 화면

 

DELIMITER //
CREATE TRIGGER trg_deleteMemberTBL
	AFTER DELETE
	ON memberTBL
	FOR EACH ROW
BEGIN
	INSERT INTO deleteMemberTBL VALUES (
		OLD.ID, OLD.NAME, OLD.PHONE, CURDATE()
	);
END//
DELIMITER;


SHOW TRIGGERS;

show triggers

 

/* DELETE FROM MEMBERTBL WHERE NAME = '이순신'; */

select * from deleteMembertbl;


-- DROP TRIGGER [트리거명];
-- drop trigger trg_deleteMemberTBL;

trigger로 insert된 data

 

트리거에 대한 기본 개념은 알았는데, 실제 내가 받은 트리거 코드를 보니 함수로 동작하고있으며 그 return 값으로 trigger가 지정되어있다. 그래서 먼저 function 에 대해서 살펴보아야 할 필요성을 느꼈다.

업무에서는 MariaDB 와 Postgresql 을 사용한다. Postgresql function 개발 및 예제에 대해 참고한 블로그이다.

 

Postgresql function 개발 및 예제

Postgresql pl/pgsql 을 이용하여 실제 프로젝트에서 쓰일 법한 function을 개발해 보자. ## 개발환경 Postgresql 9.4 pgAdmin 3 - 1.22.2 1. 사전준비 - CRUD를 수행할 테스트 테스트 테이블 생성 -- CRUD를 수행할 테

wylee-developer.tistory.com


그리고 실제로 내가 적용할 수 있는 방법은 아래 글에서 찾았다.

 

[PostgreSQL] trigger 사용하기 (history table 만들기)

참고 사이트 https://www.postgresql.org/docs/current/sql-createtrigger.html 얼마 전에 특정 table에 대한 변경 이력을 저장해야 하는 작업을 진행하면서 trigger를 처음 사용하 보았다. (A table에서 발생하는 insert, u

sungtae-kim.tistory.com


trigger용 stored function

 

[PostgreSQL] stored function(stored procedures) 사용하기

얼마 전에 stored function과 trigger를 첨으로 사용해보았다. 엄청 어려운 수준으로 사용은 안 해봤지만, 정리하면 누군가에게 도움이 될 수 있지 않을까.. 하는 마음에 (하루만 지나면 기억 못 하는

sungtae-kim.tistory.com


트리거 성능에 관하여

 

[postgresql] 트리거를 배워보자

오늘은 업무를 진행하면서 배웠던 Trigger에 대해 정리해보고자 합니다. DB 는 Postgresql 13 버젼을 기준으로 기술하였습니다.

jaeone94.github.io

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함