gpt4 book ai didi

php - MySQL AUTO_INCREMENT 根据年份

转载 作者:行者123 更新时间:2023-11-30 23:00:49 31 4
gpt4 key购买 nike

我正在创建一个票务系统,这是我的表结构:

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_INCREMENTed 数字

示例:20150001, 20150002........ 20160001, 20160002..

顺便说一句,我在我的程序中使用 php 代码,如果解决方案是创建一个函数,这可能会有所帮助。谢谢

最佳答案

您可以使用 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 以省略斜杠 - 符号。

关于php - MySQL AUTO_INCREMENT 根据年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24131397/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com