320x100
320x100
MariaDB 형식에 맞춘 프로시저 (SQL/PSM 프로시저)
- 프로시저에서 함수와 다른 프로시저를 호출하여 연산하는 기능
-- DELIMITER $$
CREATE OR REPLACE PROCEDURE register_member (
IN name VARCHAR(255),
IN phone VARCHAR(255),
IN date TIME(6),
IN comment VARCHAR(255))
BEGIN
DECLARE MEMBER_CODE INT(8);
DECLARE res JSON;
DECLARE req JSON;
SET @res = person_info.response();
SET @req = person_info.new_request(
@name,
@phone',
@comment,
'2mukee-company');
CALL expire_calculator.calculate(@req, 'DATE', to_char(@date, 'yyyy-mm-dd"T"hh24:mi:ss'));
CALL regist_server.invoke(@req, @res);
END
-- $$
-- DELIMITER ;
- MariaDB에서 FUNCTION을 호출 할 때
- SELECT 함수();
- MariaDB의 프로시저 혹은 함수에서 FUNCTION을 호출할 때
- SET 반환값을_받을_변수 = DB.함수();
- MariaDB의 프로시저 혹은 함수에서 PROCEDURE를 호출할 때
- CALL DB.프로시저명();
MariaDB 프로시저 호출
CALL register_member('2mukee', '010-1234-6678', '2022-04-29 04:15:41.000', '안녕하세요');
MariaDB 형식에 맞춘 함수
-- DELIMITER $$
CREATE OR REPLACE FUNCTION register_member (
IN name VARCHAR(255),
IN phone VARCHAR(255),
IN date TIME(6),
IN comment VARCHAR(255))
BEGIN
DECLARE MEMBER_CODE INT(8);
DECLARE res JSON;
DECLARE req JSON;
DECLARE result INT(255);
SET @res = person_info.response();
SET @req = person_info.new_request(
@name,
@phone',
@comment,
'2mukee-company');
CALL expire_calculator.calculate(@req, 'DATE', to_char(@date, 'yyyy-mm-dd"T"hh24:mi:ss'));
CALL regist_server.invoke(@req, @res);
SET @result = regist_server.is_complete(@name);
RETURN result;
END
-- $$
-- DELIMITER ;
MariaDB 함수 호출
SELECT register_member('2mukee', '010-1234-6678', '2022-04-29 04:15:41.000', '안녕하세요');
MariaDB에서 프로시저와 함수 저장이 안될 때
- sql_upgrade -u root -p
- 기존 테이블의 어떤 데이터도 건드리지 않으면서 mariadb-upgrade/mysql_upgrademysql 데이터베이스에 누락된 테이블을 다시 생성하는 명령어
- DB의 테이블을 확인하고 최신 버전으로 업데이트
- 공식문서에 의하면 새 MariaDB 서버를 시작한 후 실행 되고 이전 버전을 종료하기 전에 실행해도 아무런 문제가 없음
- 실행하기 전에 모든 DB를 백업하는 것이 좋음
- 대부분 몇 초면 끝난다고 함
- Privilieges 가 초기화 됨
- 테스트 결과 Priviliges 설정이 변하지는 않았음
- 공식문서
- 업그레이드 필요여부 확인 방법
- mysql_upgrade -u root -p check-if-upgrade-is-needed
300x250
728x90
'Database > MySQL' 카테고리의 다른 글
MySQL 테이블 복사 (0) | 2022.10.30 |
---|---|
MySQL 테이블 단편화 해결 방법 (0) | 2022.10.30 |
MariaDB 패키지 / 프로시저 / 함수 / 트리거 / PL/SQL과 SQL/PSM (0) | 2022.05.05 |
SQL 프로시저와 패키지에 대한 간단 정리 (0) | 2022.04.28 |
SQL - INDEX (인덱스) (0) | 2020.12.15 |