如何在我的数据库mysql
中的一个表中生成AUTOMATIC唯一控件号。
当我在表格中添加条目时,我希望表格control_no
中的issuance_tbl
列能够使用此格式1111-00001
的控制号自动更新。
所以当我在表格中添加另一个条目时,它应该插入1111-00002
。只需逐步添加。
感谢。 :)
答案 0 :(得分:1)
如果由于某种原因真的需要在MySQL而不是在应用程序级别实现它,那么您可以借助于单独的表来实现您的目标,以便进行排序和触发。
表架构:
CREATE TABLE issuance_seq_tbl
(
id int not null auto_increment primary key
);
CREATE TABLE issuance_tbl
(
control_no varchar(10) not null default ''
);
触发器:
DELIMITER $$
CREATE TRIGGER tg_bi_issuance_tbl
BEFORE INSERT ON issuance_tbl
FOR EACH ROW
BEGIN
INSERT INTO issuance_seq_tbl() VALUES();
SET NEW.control_no = CONCAT('1111-', LPAD(LAST_INSERT_ID(), 5, '0'));
END$$
DELIMITER ;
这是 SQLFiddle 演示