MySQL

MySQL nextval 사용 방법 (Oracle Sequence)

kimbs0301 2025. 5. 4. 10:59
DROP TABLE `next_sequence_item`;

CREATE TABLE `next_sequence_item` (
    `sequence` BIGINT
) ENGINE = innoDB;

INSERT INTO `next_sequence_item` VALUES(0);

DROP FUNCTION `nextval_item`;


DELIMITER $$

CREATE FUNCTION `nextval_item` (in_size INT)

	RETURNS BIGINT
	MODIFIES SQL DATA
	DETERMINISTIC
	BEGIN
		DECLARE ret_val BIGINT;
		UPDATE `next_sequence_item` SET `sequence` = `sequence` + in_size;
		SELECT `sequence` INTO ret_val FROM `next_sequence_item`;
	RETURN ret_val;

END $$

DELIMITER ;

SELECT nextval_item(1) AS sequence FROM dual;

 

references
https://velog.io/@postlist/MySQL-MySQL%EC%97%90%EC%84%9C-Sequence-%EA%B8%B0%EB%8A%A5-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0