웹마스터 팁

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를 직접 건드리지 않는 것이 좋습니다. 잘못하면 데이터 다 날아갑니다.

 

제목 글쓴이 날짜
자신이 쓴 글에 특정유저 댓글을 차단 Ikoo 2015.06.20
다음 위젯 뱅크를 대신할 위젯 베스트! codlllle 2015.06.20
실시간 rss 피드글 출력 위젯 file codlllle 2015.06.20
추천검색어,실시간인기순위 소스 file codlllle 2015.06.21
cloudflare api 용 curl 기본값 마루디자인 2015.06.24
홈페이지 속도가 느린 이유.(팁같지도 않은 팁) [11] 가브리엘조 2015.06.27
사이트 서버 운영체제와 사용하는 웹서버 소프트웨어 알아보는 사이트 file 후하니 2015.06.28
홈페이지 제작 시 점검사항 15가지 [1] 유래유거 2015.06.29
위젯 가운데 정렬 하는법 [3] 불금 2015.07.05
문서페이지가 수정이 되지 않는 문제 [2] file 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] file 후하니 2015.08.01
CentOS 7 : Apache2.4 + PHP5.6 + MariaDB + VSFTP 설치하기 [6] 우리아기 2015.08.06