웹마스터 팁
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
제목 | 글쓴이 | 날짜 |
---|---|---|
자신이 쓴 글에 특정유저 댓글을 차단 | Ikoo | 2015.06.20 |
다음 위젯 뱅크를 대신할 위젯 베스트! | codlllle | 2015.06.20 |
실시간 rss 피드글 출력 위젯 | codlllle | 2015.06.20 |
추천검색어,실시간인기순위 소스 | codlllle | 2015.06.21 |
cloudflare api 용 curl 기본값 | 마루디자인 | 2015.06.24 |
홈페이지 속도가 느린 이유.(팁같지도 않은 팁) [11] | 가브리엘조 | 2015.06.27 |
사이트 서버 운영체제와 사용하는 웹서버 소프트웨어 알아보는 사이트 | 후하니 | 2015.06.28 |
홈페이지 제작 시 점검사항 15가지 [1] | 유래유거 | 2015.06.29 |
위젯 가운데 정렬 하는법 [3] | 불금 | 2015.07.05 |
문서페이지가 수정이 되지 않는 문제 [2] | monet | 2015.07.07 |
config 파일을 일반 유저가 쓸 수 없는 문제 해결법 [15] | wkp | 2015.07.09 |
모바일에 최적화된 화면으로 보기 문구가 레이아웃을 가리는 문제 | creative8 | 2015.07.11 |
IIS서버 자동 설치 프로그램(PHP, MySQL, phpMyAdmin) [1] | 공처아찌 | 2015.07.12 |
CloudFlare 사용시 방문자 IP와 SSL 접속여부가 정확하게 파악되지 않는 문제 해결법 [4] | 기진곰 | 2015.07.12 |
DB에서 직접 시퀀스 생성하기 [3] | 기진곰 | 2015.07.18 |
레이아웃 메뉴에서 메뉴옆에 글수 표시하기 | 반걸 | 2015.07.20 |
[실험팁] XE 고용량/큰사진 썸네일 깨지는 것 해결 | socialskyo | 2015.07.20 |
새로고침 없는 실시간 웹서비스를 위한 기술과 간략한 역사(?) [1] | onTrust | 2015.07.27 |
member 모듈 메일인증을 사용할때 모바일 기본스킨에서 회원가입 후 이메일 발송 안내 띄우기 [2] | 후하니 | 2015.08.01 |
CentOS 7 : Apache2.4 + PHP5.6 + MariaDB + VSFTP 설치하기 [6] | 우리아기 | 2015.08.06 |