본문 바로가기
개발/데이터베이스

[데이터베이스] MYSQL(5) 저장 프로시저, 트리거

by 윤J 2023. 4. 20.

- 저장 프로시저 = 함수

DELIMITER $$
CREATE PROCEDURE GetEmployee()
BEGIN
SELECT DNO
FROM EMPLOYEE
ORDER BY EMPNAME;
END$$
DELIMITER ;

CALL GETEMPLOYEE();

     -> 매개 변수 사용시

         (IN 매개변수명 데이터형식)

         (OUT 출력매개변수명 데이터형식)

DELIMITER $$
CREATE PROCEDURE GetEmployee12(IN Name char(10))
BEGIN
	SELECT EMPNAME, DNO
	FROM EMPLOYEE
	WHERE EMPNAME=Name;
END$$
DELIMITER ;

CALL GetEmployee12('김상원');

 

 

- 트리거: 명시된 이벤트(insert, delete, update) 발생할 대마다 dbms가 자동적으로 실행하는 프로시저(함수)

               이벤트(조건)와 동작(함수)을 표현해야 함!

DELIMITER $$
CREATE PROCEDURE GetEmployee12(IN Name char(10), OUT Sal int)
BEGIN
	SELECT SALARY into Sal
	FROM EMPLOYEE
	WHERE EMPNAME=Name;
END$$
DELIMITER ;

CALL GetEmployee12('김상원');

DELIMITER //
CREATE TRIGGER testTrg
	AFTER DELETE
	ON EMPLOYEE -- 테이블명
	FOR EACH ROW
BEGIN
	SET @msg = '직원이 삭제됨'; -- 변수 정의
END //
DELIMITER ;

DELETE FROM EMPLOYEE
WHERE EMPNAME = '김상원';
SELECT @msg;

댓글