DB/Mysql
Mysql - 시퀀스 생성
하나만알자
2020. 7. 7. 23:55
반응형
/* 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');
반응형