我正在创建一个票务系统,这是我的表结构:
CREATE TABLE tix_sip
(
tktNum INT UNSIGNED NOT NULL,
sipNum INT UNSIGNED AUTO_INCREMENT,
PRIMARY KEY( sipNum ),
FOREIGN KEY(tktNum) REFERENCES Tix (tktNum)
);
我希望我的sipNum
想要按照年份编号。
示例:20140001, 20140002, ..20140334, 20140335....
如何让它自动更改前4个数字,以便明年每次来,它会创建新的\另一组AUTO_INCREMENT
编号
示例:20150001, 20150002........ 20160001, 20160002..
答案 0 :(得分:0)
您可以使用MySQL Custom AUTO_INCREMENT values,如下所示: (首先阅读文章)
创建表格和触发器:
CREATE TABLE test
(
id int not null auto_increment primary key,
year_autonum varchar(20)
);
delimiter //
DROP TRIGGER IF EXISTS custom_autonums_bi//
CREATE TRIGGER custom_autonums_bi BEFORE INSERT ON test
FOR each ROW
BEGIN
SET NEW.year_autonum = getNextCustomSeq(year(now()),year(now()));
END//
delimiter ;
插入一些值:
insert into test(id) values (null);
insert into test(id) values (null);
insert into test(id) values (null);
...
选择数据:
mysql> select * from test;
+----+--------------+
| id | year_autonum |
+----+--------------+
| 1 | 2014-000001 |
| 2 | 2014-000002 |
| 3 | 2014-000003 |
| 4 | 2014-000004 |
| 5 | 2014-000005 |
| 6 | 2014-000006 |
+----+--------------+
6 rows in set (0.00 sec)
您可以更改getNextCustomSeq
程序以省略斜杠-
。