MySQL中的自增varchar

5
有没有办法在MySQL中将主键自动递增的类型设置为varchar?

2
什么是自动增加 varchar? - Sayan
自动递增字段应该是 INT 类型。 - Shiridish
可能是 https://dev59.com/8k_Ta4cB1Zd3GeqPC7C6 的重复问题。 - Shiridish
也许你最好还是看一下这个链接,它讲述了同样的问题:https://dev59.com/nlPTa4cB1Zd3GeqPjGsH - Yanuar
请在Stackoverflow上检查此可能重复的问题。 - Zeina
这个回答解决了你的问题吗?MySQL - 如何使用VARCHAR作为自增主键 - Tofandel
4个回答

7

NONE。到目前为止,AUTO_INCREMENT 只能针对 INT 进行设置。您需要自己编写逻辑来实现。例如,

  • 获取最后一个 ID
  • 获取字符串中的 INT 部分
  • 增加该值
  • 拼接
  • 保存到数据库

0

0

MySQL中的自增字段是整数类型。

您可以在一个varchar字段中镜像自增字段,并创建一个触发器,在插入/更新时更新varchar字段。

创建触发器


0

根据我的经验,你可以将Varcar ID设置为自动递增,但必须有逻辑...比如说

 Dim crnum As String = "CR00001"
    Dim iTemp As Integer = 0

                iTemp = CInt(crnum.Substring(4, crnum.Length - 4)) '// get only the #'s from String and Convert them to Integer.
                iTemp += 1 '// increase the ID # + 1.
                crnum = crnum.Substring(0, 4) & iTemp.ToString("00000") '// set the ID back with String and #'s formatted to 5 digit #.

但是你必须编写自己的逻辑代码,因为在第二次执行后,它将成为重复的主键,所以你必须考虑应用你的代码的逻辑。一切皆有可能。 ;)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接