首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在sql中添加具有字符串和自动递增号的ID

如何在sql中添加具有字符串和自动递增号的ID
EN

Stack Overflow用户
提问于 2018-06-21 15:52:42
回答 1查看 614关注 0票数 1

我在做一个数据库项目,我用它的ID。基本上,ID由一个类型和一个数字组成,当我们将新的数据插入到表中时,它应该自动为数据分配一个新的ID,比如MS-1,MS-2,MS-3,DS-1,DS-2,PC-2,PC-3,我知道如何在sql中将字符串与自动增量号连接起来,而我不知道如何处理不同的字符串。提前感谢您提出任何有益的建议!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-21 16:16:09

这正是我的案例,我已经解决了,请看我在similar问题中的答案。

让我也尝试系统地回答这个问题。

代码语言:javascript
复制
create table my_seq(
min_value integer,
Max_value integer,
last_value integer,
increment_by tinyint,
type varchar)ENGINE = InnoDB;

然后创建数据值,例如,

代码语言:javascript
复制
insert into my_seq(min_value,max_value,last_value,increment_by,type) 
  values(1,99999999,1,1,'foo#','DS'),(1,999999999,1,1,'foo#','MS'),(1,999999999,1,1,'foo#','DOC');

确保你有auto-commit=false。然后,在应用程序或数据库代码中这样做,

代码语言:javascript
复制
//very import to begin the transaction
begin;
select CONCAT(type_val,'-',last_value) from my_seq where type_val=? FOR UPDATE;

Read the result in App or database procedure/trigger

update my_seq set last_number=last_number+1 where type_val=?;
commit;

确保有index on type_val

我认为这是可行的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50972809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档