-
트리거데이터베이스/SQL 2024. 1. 25. 16:46
DELIMITER // -- INSERT 트리거 CREATE TRIGGER trg_insertedMemberTBL AFTER INSERT ON memberTBL FOR EACH ROW BEGIN INSERT INTO deletedmembertbl VALUES (NEW.memberID, NEW.memberName, NEW.memberAddress, CURDATE()); END // DELIMITER ; INSERT INTO memberTBL VALUES ('ABCD', '테스트', '서울시 어쩌구');
DELIMITER // -- 업데이트 트리거 1 CREATE TRIGGER trg_updatedMemberTBL AFTER UPDATE ON memberTBL FOR EACH ROW BEGIN INSERT INTO deletedmemberTBL VALUES (NEW.memberID, NEW.memberName, NEW.memberAddress, CURDATE()); END // DELIMITER ; UPDATE memberTBL SET memberName = 'Test' WHERE memberID = 'ABCD'; INSERT INTO memberTBL VALUES ('QWER', 'QWER', '이게 되나'); UPDATE memberTBL SET memberAddress = '확인 중' WHERE memberName = 'QWER'; DELIMITER // -- 업데이트 트리거 2 CREATE TRIGGER trg_updatedMemberTBL2 AFTER UPDATE ON memberTBL FOR EACH ROW UPDATE deletedmemberTBL SET memberID = NEW.memberID, memberName = NEW.memberName, memberAddress = NEW.memberAddress WHERE memberID = OLD.memberID; -- 기존의 행을 찾아 업데이트합니다. // DELIMITER ; INSERT INTO memberTBL VALUES ('FIND', '업데이트', '트리거 2'); UPDATE memberTBL SET memberID = 'GET' WHERE memberName = '업데이트';
모든 트리거 적용되는 것 확인 완
-- 뷰 CREATE VIEW uv_memberTBL2 AS SELECT memberID, memberAddress FROM memberTBL; SELECT * FROM uv_memberTBL2 -- 스토어드 프로시저 1 DELIMITER // CREATE PROCEDURE StProc() BEGIN SELECT * FROM memberTBL ; SELECT * FROM productTBL ; END // DELIMITER ; CALL StProc() ; -- 스토어드 프로시저 2 (계산) DROP PROCEDURE IF EXISTS errorProc; DELIMITER $$ CREATE PROCEDURE errorProc() BEGIN DECLARE i INT; -- 1씩 증가하는 값 DECLARE hap INT; -- 합계(정수형). 오버플로 발생시킬 예정 DECLARE saveHap INT; -- 합계(정수형). 오버플로 직전의 값 저장 DECLARE EXIT HANDLER FOR 1264 -- INT형 오버플로가 발생하면 이 부분 수행 BEGIN SELECT CONCAT('INT 오버플로 직전의 합계 -->', saveHap); SELECT CONCAT('1+2+3+4+...+',i ,'=오버플로'); END; SET i = 1; -- 1부터 증가 SET hap = 0; -- 합계 누적 WHILE (TRUE) DO -- 무한 루프 SET saveHap = hap; -- 오버플로 직전의 합계 저장 SET hap = hap + i; -- 오버플로가 나면 위에 수행하는 부분 수행 SET i = i + 1; END WHILE ; END $$ DELIMITER ; CALL errorProc();
'데이터베이스 > SQL' 카테고리의 다른 글
회원 관리 시스템 (0) 2023.12.29 PHP와 MariaDB 연동 (0) 2023.12.28 PHP 기본 문법 (0) 2023.12.28 MariaDB 생성 및 Query Practice (0) 2023.12.21 XAMPP 설치 (0) 2023.12.14