我有一个包含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中执行此操作吗?如果没有,我怎么能用触发器做到这一点?
答案 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 希望这对你有帮助。