MySQL中的自动增量varchar

laawzig2  于 2022-10-31  发布在  Mysql
关注(0)|答案(4)|浏览(236)

有没有办法在mySql中设置主键自动递增,类型为varchar?

w1e3prcc

w1e3prcc1#

  • NONE*。到目前为止,AUTO_INCREMENT只能为INT设置。它需要有自己的逻辑来完成此操作。例如,
  • 获取上一个ID
  • 获取字符串中的INT部分
  • 增加值
  • 连接
  • 保存到数据库
osh3o9ms

osh3o9ms2#

复制MySQL - how to use VARCHAR as AUTO INCREMENT Primary Key
根据我的观点,你必须把它改为整数类型。因为AUTO_INCREMENT只适用于INT类型,而且将字段设置为PRIMARY KEY可以防止值的重复。

epggiuax

epggiuax3#

自动增量字段在mysql中是整数。
您可以在varchar字段中镜像自动递增字段,并建立在插入/更新时更新varchar字段的触发程序。
Create Trigger

hgqdbh6s

hgqdbh6s4#

根据我经验,您可以将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 #.

但是你必须做你自己的逻辑,因为你第二次运行它之后它将变成重复的主键,所以,你必须思考你的逻辑来应用你的代码。任何事情都是可能的。)

相关问题