You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
863 B
MySQL
33 lines
863 B
MySQL
2 years ago
|
CREATE TABLE `tb_key_sequence` (
|
||
|
`seq_name` varchar(3) NOT NULL COMMENT '시퀀스 prefix',
|
||
|
`seq_no` int NOT NULL COMMENT '시퀀스 no',
|
||
|
PRIMARY KEY (`seq_name`)
|
||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='tb_key_sequence';
|
||
|
|
||
|
|
||
|
|
||
|
CREATE FUNCTION `fn_get_key_seq`(`p_seq_name` VARCHAR(3), `p_key_length` int)
|
||
|
RETURNS varchar(20) CHARSET utf8
|
||
|
BEGIN
|
||
|
DECLARE RTN_VAL VARCHAR(20);
|
||
|
|
||
|
INSERT INTO tb_key_sequence (seq_name, seq_no)
|
||
|
values (p_seq_name, LAST_INSERT_ID(1))
|
||
|
ON DUPLICATE KEY UPDATE seq_no=LAST_INSERT_ID(seq_no+1);
|
||
|
|
||
|
set @ret = row_count();
|
||
|
|
||
|
if @ret = 0 then
|
||
|
set RTN_VAL = '0';
|
||
|
else
|
||
|
SET RTN_VAL = (SELECT TRIM(CONCAT(p_seq_name, LPAD(LAST_INSERT_ID(),p_key_length,'0'))));
|
||
|
end if;
|
||
|
|
||
|
RETURN RTN_VAL;
|
||
|
END ;
|
||
2 years ago
|
|
||
|
|
||
|
|
||
|
|
||
|
|