MySQL自定义自动递增值

时间:2017-05-18 04:29:48

标签: mysql

我知道MySQL中的自动增量是基于整数。

但我需要另一个id作为自定义生成的一个自动递增的I /当前年份,同时插入记录。

EG:

ID CID
1   1/2017
2 2/2017

有没有办法实现它?

提前致谢

2 个答案:

答案 0 :(得分:0)

在表格数据中创建可导出的值通常是糟糕的设计。这样的事情怎么样:

create table table1 (
    id int auto_increment primary key,
    tstamp timestamp default current_timestamp,
    username varchar(32)
);

insert into table1 values (DEFAULT, DEFAULT, "user1");

select id, YEAR(tstamp), username from table1;

如果您正在使用程序来检索数据,那么该程序可以用您喜欢的格式显示它。

但如果您希望让mysql为您生成显示,那么这样的事情也会起作用:

select id, concat(id, "/", YEAR(tstamp)), username from table1;

答案 1 :(得分:0)

我能看到让每个人重置每年ID的唯一方法是使用自动增量字段并使用2017000000之类的起始值,然后在下一年将下一个值设置为2018000000。 如果你想要根据需要对字段进行格式化,你可以使用一个视图,这样字符串操作就可以通过MySQL完成并呈现给你一些像

select TRIM(LEADING '0' from concat(right(concat(2017000001),6),'/',left(concat(2017000001),4))) from dual