jsp 이용 RSV_ID 구하기(mysq 시퀀스사용하기)
-- 예약 자동증가 값 테이블..
CREATE TABLE `TB_AUTO_INC` (
`AUTO_SEQ` BIGINT NOT NULL AUTO_INCREMENT,
`NAMECHK_DI` VARCHAR(100),
`NAMECHK_CI` VARCHAR(128),
`REGDATE` DATETIME,
`REG_ID` VARCHAR(100),
`REG_IP` VARCHAR(30),
PRIMARY KEY (`AUTO_SEQ`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
TB_AUTO_INC : 자동증가 값처리하고 LAST_INSERT_ID() 함수이용하여
최근 발생한 이전 자동증가값 가져오기처리...
alter table TB_AUTO_INC auto_increment=1000; // 최초 시작값 1000
LAST_INSERT_ID()라는 함수를 사용하면 된다. 이 함수는 가장 최근에 성공적으로 수행된 INSERT 구문의 첫번째AUTO_INCREMENT column의 값을 반환한다.
// RSV_ID 구하기...
sSql = "INSERT INTO TB_AUTO_INC ( " +
" NAMECHK_DI, " +
" NAMECHK_CI, " +
" REGDATE, " +
" REG_ID, " +
" REG_IP " +
") VALUES ( " +
" '"+NameChk_DI+"', " +
" '"+NameChk_CI+"', " +
" now(), " +
" '"+NameChk_DI+"', " +
" '"+sREMOTE_IP+"' " +
" ) ";
int iInRSV = dbhandle.dbUpdate(sSql);
sSql = "SELECT CONCAT(CONCAT(DATE_FORMAT(now(),'%y%m%d%H%i%s'),'_'), LAST_INSERT_ID()) AUTO_SEQ FROM TB_AUTO_INC";
String sAutoSeq = dbhandle.getSelectone(sSql);
String sAutoSeq1 = util.getExplodeString(sAutoSeq,"_",0);
String sAutoSeq2 = util.getExplodeString(sAutoSeq,"_",1);
if(sAutoSeq2.length() == 1){
sAutoSeq2 = "00"+sAutoSeq2;
}else if(sAutoSeq2.length() == 2){
sAutoSeq2 = "0"+sAutoSeq2;
}else if(sAutoSeq2.length() >= 3){
sAutoSeq2 = sAutoSeq2.substring(sAutoSeq2.length()-3);
}
String rsv_id = sAutoSeq1 + sAutoSeq2;