웹 서비스 개발 중 서버의 사용가능한 port를 DB에서 관리하는 기능이 필요.
9000 ~ 9999까지 port number를 DB에 미리 넣고, 해당 port가 사용가능한지 여부를 표시해야한다.
shell script로 하나씩 해보려다 찾아보니 msyql에 procedure란 기능이 있고,
이를 통해 함수를 선언,
함수내에서 loop문을 작성하고,
이를 호출 할 수 있다.
DELIMITER $$를 사용하는 이유는,
함수내 각 문법의 끝을 나타내는 ";"를 넣어야하는데
DELIMITER를 $$로 설정하지 않을 경우 procedure내 ";"로 끝나는 문장에서 엔터를 칠 경우,
mysql query문 실행하라는 뜻으로 받아 들이기 때문에,
기본 msyql 명령문의 끝을 ";"로 사용했다면 이후부터는 "$$"으로 참고하라고 알려주는 것.
// $$를 사용해 sql 문의 끝을 나타내도록 설정
DELIMITER $$
// 기존 portInsert 함수가 있을 경우 삭제
DROP PROCEDURE IF EXISTS portInsert$$
// 함수 생성
CREATE PROCEDURE portInsert()
BEGIN
DECLARE i INT DEFAULT 9000;
WHILE i <= 9999 DO
INSERT INTO port_pool (port, is_available) VALUES (i, 1);
SET i = i + 1;
END WHILE;
END$$
// 함수 호출
CALL portInsert();
$$
[Neo 둥근모 폰트] 레트로 느낌의 폰트로 개발하기 (1) | 2022.09.20 |
---|---|
[Vue.js] dotenv 사용하기 (0) | 2022.04.21 |
GeoLite2 Country 활용한 한국 IP list 추출 & iptables 에 적용하기 (0) | 2021.07.22 |
[Network] IP Traffic Monitoring Tools (0) | 2021.07.20 |
[MySQL] 내가 자주 쓰는 mysql query 정리 (0) | 2021.07.09 |