웹마스터 팁
DB에서 직접 시퀀스 생성하기
2015.07.18 22:35
XE는 모듈, 문서, 댓글, 회원 등 모든 것에 고유번호(srl)를 부여합니다.
그런데 이게 테이블마다 별도로 auto_increment되는 것이 아니라 사이트 전체에서 유일한 번호이기 때문에
XE 내에서 작업하지 않고 DB에서 직접 작업해야 할 때는 상당히 귀찮습니다.
잘못 건드리면 시퀀스 값이 중복되어서 난리나고요 ㅠㅠ
MySQL 5.x에서는 아래와 같은 프로시저를 생성하여 시퀀스 작업을 단순화할 수 있습니다.
DELIMITER //
DROP FUNCTION IF EXISTS xe_next_sequence //
CREATE FUNCTION xe_next_sequence() RETURNS BIGINT
BEGIN
DECLARE next_sequence BIGINT;
INSERT INTO xe_sequence (seq) VALUES (0);
SELECT LAST_INSERT_ID() INTO next_sequence;
IF (next_sequence % 10000 = 0) THEN
DELETE FROM xe_sequence WHERE seq < next_sequence;
END IF;
RETURN next_sequence;
END //
DELIMITER ;
이렇게 해두면 어디서든 시퀀스 값이 필요할 때
SELECT xe_next_sequence();
이렇게 간단한 쿼리 한 번으로 다음 시퀀스 값을 뽑아낼 수 있게 됩니다.
또한 다른 쿼리를 작성할 때도
INSERT INTO xe_table_name VALUES (xe_next_sequence(), 'foo', 'bar', ... );
이렇게 활용이 가능합니다.
※ 꼭 필요한 경우가 아니면 DB를 직접 건드리지 않는 것이 좋습니다. 잘못하면 데이터 다 날아갑니다.
댓글 3
제목 | 글쓴이 | 날짜 |
---|---|---|
SVN 의 사용 방법 [3] | preware | 2007.11.06 |
완전 초보도 확장 변수를 이용해 게시판 개조할수잇다!! [4] | 쿤. | 2007.11.06 |
(08년 1월2일수정)0.2.3이후 최근글에 공지사항을 제외시키고자할 경우 [11] | 포레버 | 2007.11.07 |
레벨 아이콘이 제대로(찌그러지는 등) 출력되지 않을 때 수정방법 | 必得力 | 2007.11.07 |
메뉴에 마우스 갖다대면 뜨는 메뉴 만드는 방법 [25] | 소마세월 | 2007.11.07 |
"이 게시물을..." 추천/비추천/신고 메뉴를 버튼으로 [28] | xe촙5 | 2007.11.08 |
제로보드 2.3 에서 2.5 변경사항 데이터 테이블 구조 변경사항 체크를 정리해봅니다. [4] | 도토리나무 | 2007.11.09 |
제로보드 2.3 에서 2.5 업그레이드 방법 | 도토리나무 | 2007.11.09 |
첨부파일 기능에 대한 짧은 정보 [3] | 고라리 | 2007.11.09 |
외부 문서에서 회원 정보 얻는 방법 [11] | 소마세월 | 2007.11.10 |
통합검색 버그 style 수정 [2] | 소마세월 | 2007.11.11 |
확장변수에서 본문 입력 빼기 [10] | Diver | 2007.11.12 |
회원에게 만기일 주기(1원짜리 팁) [17] | 까오천사 | 2007.11.12 |
쪽지 수신 음성 알림 [19] | Simulz | 2007.11.13 |
알바트로스 적용후 검색하는 곳에 댓글과 태그 검색 업션 넣기 [1] | 비밀얌 | 2007.11.13 |
[수정]업로드된 그림 자동출력 [6] | 소마세월 | 2007.11.13 |
이미지 갤러리 셀렉트박스 문제 [1] | 공작대천사 | 2007.11.14 |
<head> 태그안에 임의의 내용을 넣는 방법 [1] | 발돋움 | 2007.11.16 |
간편해진 페이지 수정법 | coll | 2007.11.16 |
(포인트) 레벨별 포인트 계산 기능 추가 [4] | Simulz | 2007.11.19 |