用mysql生成唯一主鍵

CREATE PROCEDURE pkg_get_task_id_seq(IN seq_name VARCHAR(30), IN num INT(5), INOUT task_id VARCHAR(24))
BEGIN
DECLARE v_seq_day VARCHAR (24);
SET v_seq_day =DATE_FORMAT(NOW(), '%Y%m%d');

UPDATE ts_air_sequence
SET
VALUE = last_insert_id(IF(seq_day=v_seq_day,VALUE,0) + next + num),seq_day=v_seq_day
WHERE NAME = seq_name;

SET task_id =
(
SELECT
CONCAT(
v_seq_day,
LPAD(last_insert_id(), 5, '0')
)
);
COMMIT;
END;
-- auto-generated definition
CREATE TABLE ts_air_sequence
(
name VARCHAR(255) NOT NULL
COMMENT '自增序號獲取表'
PRIMARY KEY,
value BIGINT(10) NULL,
next INT(3) NULL,
remark VARCHAR(255) NULL
COMMENT '備注',
seq_day VARCHAR(20) NULL
COMMENT '序號年月'
)
COMMENT '航空序列號表';

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容