DB/SQL

[MySQL] 스토어드 프로시저로 데이터 insert 하기

bskyvision.com 2022. 10. 23. 19:07

스토어드 프로시저로 데이터를 읽기(SELECT)만 할 수 있다고 생각하시는 분도 있는 것 같습니다. 하지만, 스토어드 프로시저로 데이터를 입력(INSERT)하는 것도 가능합니다. 

 

우선 name, pw, content 등으로 구성된 reply라는 이름의 댓글 테이블이 있다고 가정하겠습니다. 이 테이블에 데이터를 삽입하는 스토어드 프로시저를 생성해보겠습니다. 이 프로시저의 이름은 write_reply라고 하겠습니다. 작성자, 비밀번호, 내용과 관련하여 3가지의 입력 매개변수가 필요한 상황입니다. name 컬럼에 넣어줄 데이터를 받기 위해 userName, pw 컬럼에 넣어줄 데이터를 받기 위해 userPw, content 컬럼에 넣어줄 데이터를 받기 위해 userContent라는 입력 매개변수를 각각 만들었습니다. 

 

DELIMITER $$
CREATE PROCEDURE write_reply (
    IN userName VARCHAR(50), 
    IN userPw VARCHAR(50), 
    IN userContent text
)
BEGIN
    INSERT INTO reply (name, pw, content) VALUES (userName, password(userPw), userContent);
END $$
DELIMITER ;

 

이렇게 write_reply라는 스토어드 프로시저를 생성했다면, workbench에서는 다음과 같이 스토어드 프로시저 리스트에 추가됩니다.

 

 

자, 이제 이 프로시저를 호출할 때는 다음과 같이 쿼리를 작성하시면 됩니다. 

 

CALL write_reply('개똥이', '123456789**', '개똥도 약에 쓰려면 없다죠?');

 

그러면 댓글이 잘 삽입됩니다.

 

관련 글

- [MariaDB] 스토어드 프로시저 사용법 및 사용이유