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
SQL
33 lines
863 B
SQL
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 ;
|
|
|
|
|
|
|
|
|
|
|