CREATE TRIGGER문법
CREATE
[DEFINER = { user | CURRENT_USER }]
TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_body- 설명
- DEFINER
- DEFINER 조항은 트리거 활성화 시간에 액세스 권한을 확인할 때 사용되는 보안 컨텍스트를 결정합니다.
- trigger_time
- trigger_time는 트리거 동작 시간입니다.트리거가 수정되는 각 행의 앞 또는 뒤에 활성화한다는 것을 가리킨다 앞 또는 뒤에이 될 수 있습니다.
- trigger_event
- INSERT
- 새 행이 테이블에 삽입될 때마다 트리거가 활성화됩니다.
- UPDATE
- 행을 수정할 때마다 트리거가 활성화됩니다.
- DELETE
- 행이 테이블에서 삭제됩니다 때마다 트리거가 활성화됩니다.
- trigger_body
- 트리거가 활성화 될때 실행할 수 있는 구문을 기술.
- DB 만들기
- mysql에 root권한으로 접속후, 테스트 데이터베이스를 만들고, User를 만듭니다.
- mysql -u아이디 -p
create database test; use test; grant all privileges on test.* to test@localhost identified by 'test' with grant option;
[실행화면]

- 예제 테이블 만들기
- mysql -utest -ptest로 접속한다. 그다음 아래의 명령문을 실행한다.
use test; CREATE TABLE test1(a1 INT); CREATE TABLE test2(a2 INT); CREATE TABLE test3(a3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY); CREATE TABLE test4( a4 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b4 INT DEFAULT 0 );
[실행화면]

- 트리거 만들기
- 트리거 이름 “testref”이고, test1테이블의 Insert후 트리거를 동작
- test2테이블 a2에 test1에 추가한a1을 넣어 Insert를 함.
- test3테이블 test1에 추가한a1값과 같은 데이터를 지움.
- test4테이블 a4와 test1에 추가한a1이 같으면 b4에 1을 더한다.
delimiter |
CREATE TRIGGER testref BEFORE INSERT ON test1
FOR EACH ROW BEGIN
INSERT INTO test2 SET a2 = NEW.a1;
DELETE FROM test3 WHERE a3 = NEW.a1;
UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
END;
|
delimiter ;[실행화면]

- test3테이블에 초기 데이터 Insert
INSERT INTO test3 (a3) VALUES (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL);
- test4테이블에 초기 데이터 Insert
INSERT INTO test4 (a4) VALUES (0), (0), (0), (0), (0), (0), (0), (0), (0), (0);
- test1테이블에 데이터 Insert
INSERT INTO test1 VALUES
(1), (3), (1), (7), (1), (8), (4), (4);[실행화면]

- 결과 확인
select * from test1;
[실행화면]

select * from test2;
[실행화면]

select * from test3;
[실행화면]

select * from test4;
[실행화면]

어떤가요? 트리거에 정의했던데로 값들이 바뀌어 있죠!
트리거의 사용 방법에 대해서 조금은 알것 같죠!
오늘은 여기 까지 입니다.
감사합니다.
[참고 사이트]:http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html
댓글 7개
12년 전
저도 최근들어 트리거 사용하기 시작했는데 설명을 잘해주셨네요~
12년 전
감사합니다. ^^
asdfg
12년 전
감사
takumi22
12년 전
감사합니다
쉽다zzz
12년 전
감사합니다~
Jos87
12년 전
감사합니다
하룻강아지
12년 전
오우 머리아파..
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 5930 | 12년 전 | 4641 | ||
| 5929 | 12년 전 | 7840 | ||
| 5928 | 12년 전 | 789 | ||
| 5927 | 12년 전 | 1416 | ||
| 5926 | 13년 전 | 1832 | ||
| 5925 |
김준수사랑
|
13년 전 | 1250 | |
| 5924 |
|
13년 전 | 2760 | |
| 5923 | 13년 전 | 959 | ||
| 5922 | 13년 전 | 1166 | ||
| 5921 | 13년 전 | 658 | ||
| 5920 | 13년 전 | 1181 | ||
| 5919 |
|
13년 전 | 1374 | |
| 5918 | 13년 전 | 12588 | ||
| 5917 |
프로프리랜서
|
13년 전 | 1099 | |
| 5916 |
프로프리랜서
|
13년 전 | 4626 | |
| 5915 |
프로프리랜서
|
13년 전 | 1605 | |
| 5914 |
프로프리랜서
|
13년 전 | 653 | |
| 5913 |
프로프리랜서
|
13년 전 | 935 | |
| 5912 |
프로프리랜서
|
13년 전 | 3746 | |
| 5911 |
프로프리랜서
|
13년 전 | 925 | |
| 5910 |
|
13년 전 | 4583 | |
| 5909 |
수야3019
|
13년 전 | 672 | |
| 5908 | 13년 전 | 834 | ||
| 5907 | 13년 전 | 1233 | ||
| 5906 | 13년 전 | 8757 | ||
| 5905 |
프로프리랜서
|
13년 전 | 1473 | |
| 5904 | 13년 전 | 2497 | ||
| 5903 | 13년 전 | 1652 | ||
| 5902 | 13년 전 | 1927 | ||
| 5901 | 13년 전 | 2013 | ||
| 5900 |
프로프리랜서
|
13년 전 | 1090 | |
| 5899 |
프로프리랜서
|
13년 전 | 1279 | |
| 5898 | 13년 전 | 17672 | ||
| 5897 | 13년 전 | 2334 | ||
| 5896 | 13년 전 | 4358 | ||
| 5895 | 13년 전 | 1692 | ||
| 5894 | 13년 전 | 2101 | ||
| 5893 |
프로프리랜서
|
13년 전 | 2160 | |
| 5892 | 13년 전 | 16039 | ||
| 5891 |
bitmaster
|
13년 전 | 1080 | |
| 5890 |
프로프리랜서
|
13년 전 | 946 | |
| 5889 |
|
13년 전 | 724 | |
| 5888 | 13년 전 | 1618 | ||
| 5887 |
|
13년 전 | 3199 | |
| 5886 | 13년 전 | 3448 | ||
| 5885 | 13년 전 | 2109 | ||
| 5884 | 13년 전 | 5651 | ||
| 5883 | 13년 전 | 2822 | ||
| 5882 | 13년 전 | 6029 | ||
| 5881 | 13년 전 | 1637 | ||
| 5880 | 13년 전 | 20716 | ||
| 5879 | 13년 전 | 906 | ||
| 5878 |
나의라임토마토
|
13년 전 | 1407 | |
| 5877 | 13년 전 | 16773 | ||
| 5876 |
maniAc
|
13년 전 | 2805 | |
| 5875 | 13년 전 | 1039 | ||
| 5874 | 13년 전 | 3735 | ||
| 5873 |
lainfox
|
13년 전 | 1182 | |
| 5872 | 13년 전 | 1346 | ||
| 5871 | 13년 전 | 796 | ||
| 5870 | 13년 전 | 2529 | ||
| 5869 |
AMDbest
|
13년 전 | 1513 | |
| 5868 |
한번잘해보자
|
13년 전 | 658 | |
| 5867 |
|
13년 전 | 916 | |
| 5866 | 13년 전 | 7494 | ||
| 5865 | 13년 전 | 2408 | ||
| 5864 | 13년 전 | 938 | ||
| 5863 | 13년 전 | 1311 | ||
| 5862 | 13년 전 | 2876 | ||
| 5861 | 13년 전 | 1028 | ||
| 5860 | 13년 전 | 19330 | ||
| 5859 | 13년 전 | 2944 | ||
| 5858 | 13년 전 | 2653 | ||
| 5857 | 13년 전 | 4823 | ||
| 5856 |
|
13년 전 | 1952 | |
| 5855 | 13년 전 | 817 | ||
| 5854 | 13년 전 | 1008 | ||
| 5853 | 13년 전 | 16106 | ||
| 5852 | 13년 전 | 825 | ||
| 5851 | 13년 전 | 2222 | ||
| 5850 | 13년 전 | 1773 | ||
| 5849 |
AMDbest
|
13년 전 | 1306 | |
| 5848 |
|
13년 전 | 1164 | |
| 5847 |
SeanLee
|
13년 전 | 1304 | |
| 5846 | 13년 전 | 23465 | ||
| 5845 | 13년 전 | 2651 | ||
| 5844 | 13년 전 | 28806 | ||
| 5843 |
|
13년 전 | 2207 | |
| 5842 | 13년 전 | 22519 | ||
| 5841 | 13년 전 | 5744 | ||
| 5840 |
Quincy
|
13년 전 | 935 | |
| 5839 | 13년 전 | 966 | ||
| 5838 | 13년 전 | 2820 | ||
| 5837 | 13년 전 | 1096 | ||
| 5836 | 13년 전 | 2317 | ||
| 5835 | 13년 전 | 1520 | ||
| 5834 | 13년 전 | 1503 | ||
| 5833 | 13년 전 | 6677 | ||
| 5832 | 13년 전 | 5213 | ||
| 5831 | 13년 전 | 1071 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기