如何使用字符串前缀创建唯一的自动增量字段?

时间:2013-11-30 13:26:38

标签: mysql auto-increment

我有一个包含3个项目的'用户'表。

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`customernumber` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
`type` enum('customer','admin') COLLATE utf8_unicode_ci NOT NULL,

如何使用'type'的前两个字母增加'customernumber'?

例如,ID = 10且type ='admin'的用户将拥有客户编号“AD000010”。 ID = 12且type ='customer'的用户将拥有客户编号'CU000012'?

这可以在不使用触发器的情况下在MySQL中执行此操作吗?如果没有,我怎么能用触发器做到这一点?

1 个答案:

答案 0 :(得分:4)

您可以做的是将密钥存储为两列。 char前缀和自动递增int,两者都按主键分组。

CREATE TABLE myItems (
    id INT NOT NULL AUTO_INCREMENT,
    prefix CHAR(30) NOT NULL,
    PRIMARY KEY (id, prefix),
    ...

请参阅此链接 How to make MySQL table primary key auto increment with some prefix 希望这对你有帮助。