본문 바로가기
Database/MySQL

[MySQL] 시퀀스 사용법

by Youngs_ 2022. 6. 27.

MySQL에는 오라클처럼 따로 시퀀스 기능을 제공하지 않는다.

 

Oracle(오라클) 데이터베이스에서는 기본적으로 sequence 객체를 사용하여, 기본키로 설정하는 경우가 많다.

생성하는 방법도 쉽고, 사용하는 방법도 쉬운 오라클 시퀀스 객체에 비해 mysql은 다소 어려운 감이 있다.

/* 오라클 시퀀스 기본 생성 예 */

create sequence [시퀀스 명];

[시퀀스 명].nextval() -- 1씩 순차적으로 증가함.

오라클 데이터베이스에 익숙해진 상태에서, mysql로 똑같은 기능을 구현하려니 많이 답답했다.

이것저것 검색 해 본 뒤에야, 가장 간단하고 쉽게 구현하는 방법을 찾아냈다

/* seq_mysql 테이블 생성 */
CREATE TABLE seq_mysql(
id INT 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 INT READS SQL DATA
BEGIN
DECLARE RESULT_ID INT;
UPDATE seq_mysql SET id = LAST_INSERT_ID(id+1)
WHERE seq_name = p_seq_name;
SET RESULT_ID = (SELECT LAST_INSERT_ID());
RETURN RESULT_ID;
END $$
DELIMITER ;

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

/* 시퀀스 삽입 */
get_seq('boardSeq')

 


출처 : https://velog.io/@shson/mysql-%EC%8B%9C%ED%80%80%EC%8A%A4-%EB%A7%8C%EB%93%9C%EB%8A%94%EB%B2%95

 

mysql 시퀀스 만드는법

Oracle(오라클) 데이터베이스에서는 기본적으로 sequence 객체를 사용하여, 기본키로 설정하는 경우가 많다. 생성하는 방법도 쉽고, 사용하는 방법도 쉬운 오라클 시퀀스 객체에 비해 mysql은 다소 어

velog.io

 

'Database > MySQL' 카테고리의 다른 글

[MySQL] Autocommit & Rollback  (0) 2023.01.09
[MySQL] Auto increment 사용법  (0) 2022.09.28
[MySQL] 암호화해서 저장하는법  (0) 2022.07.28
[MySQL] AutoCommit 해제  (0) 2022.07.02
[MySQL] 설치  (0) 2022.06.24

댓글