一尘不染

在数据库中使用字符串组合自动增加表ID

mysql

我们知道任何表的ID都是整数类型,并且该表中的自动递增是可以的。但是我的问题是我想增加字符串和整数的组合。例如String:ABC是唯一ID的起始代码。

我表的第一个ID应该是主键,

即ABC10001,ABC10002,.....等。

不使用其他键作为自动增量。请不要使用两种类型的唯一密钥。


阅读 363

收藏
2020-05-17

共1个答案

一尘不染

您无法在一列中完成此操作,除非您指定一个BEFORE INSERT触发器来预填充它,否则完全由您自己决定,以免auto_increment自行处理的任何竞争条件。auto_increment仅可用于整数或浮点列。

我认为,“要求” PK具有特定格式,而“仅使其具有自动递增”是互斥的。

这并不意味着您不能在选择上“伪造”它:

SELECT CONCAT('ABC1',LPAD(id,5,'0')) FROM tablename;
2020-05-17