본문 바로가기

DB/Mysql

Mysql - 시퀀스 생성

반응형
/* mysql 시퀀스 기본 생성 예 */
DROP TABLE SEQ_MYSQL;

CREATE TABLE SEQ_MYSQL(
	ID VARCHAR(10) NOT NULL,
    SEQ_NAME VARCHAR(50) NOT NULL
);

/* 생성된 펑션 삭제 */
DROP FUNCTION IF EXISTS get_seq;

/* Auto_increment 적용 */
DELIMITER $$
CREATE FUNCTION get_seq (p_seq_name VARCHAR(45))
RETURNS VARCHAR(10) READS SQL DATA
BEGIN
DECLARE RESULT_ID INT;
UPDATE SEQ_MYSQL SET ID = CAST(LAST_INSERT_ID(CAST(id as unsigned)+1) as char(10))
WHERE SEQ_NAME = p_seq_name;
SET RESULT_ID = (SELECT LAST_INSERT_ID());
RETURN LPAD(RESULT_ID,10,'0');
END $$
DELIMITER ;

/* 시퀀스 생성 */
INSERT INTO seq_mysql
VALUES ('0', 'ID_SEQ');

/* 시퀀스 삽입 */
SELECT get_seq('ID_SEQ');
반응형

'DB > Mysql' 카테고리의 다른 글

[Mysql] Public Key Retrieval is not allowed Error  (0) 2022.04.02