【问题标题】:How to make MySQL table primary key auto increment with some variable prefix如何使用一些变量前缀使 MySQL 表主键自动递增
【发布时间】:2015-08-28 15:22:51
【问题描述】:

如何使 MySQL 表主键自动增加一些变量前缀??

我正在尝试使用触发器创建自动增量字段,其中字符串+数字都是可变的。例如 PRJ001、PRJ002、PRD001、PRD002...等。 如何使用触发器或使用简单查询来实现这一点???

有什么建议可以让我开心吗?

【问题讨论】:

  • 字符串和数字分开存放,不要使用auto_increment。尽管有它的名字,但这不是它的用途。
  • 可以这样做,当然。我会通过一个存储过程,锁定,花 20 分钟,然后想知道为什么它真的很重要
  • 我指的是stored proc。这意味着您的插入是通过存储过程发生的,而不是原生的插入语句。那里的那个问题是关于重复更新插入实际上如何在 auto_increment 值中产生间隙。存储过程可以根据您的目的进行定制。但是不要。这个概念很疯狂。不要使用它,剪裁它,它会造成不必要的精神错乱。

标签: php mysql


【解决方案1】:

我认为这是不可能的,我知道有两种方法可以实现这一目标:

  1. 使用 INT 字段并在阅读时将其转换为您想要的任何内容。
  2. 将其设为 var char 并手动插入(在添加到数据库之前对您的代码进行计算)

【讨论】:

    【解决方案2】:

    就像在 cmets 中所说的那样,您不能为此使用自动增量。

    在你的位置,我不会使用单独的枚举,而是使用一个枚举:PRJ001、PRJ002、PRD003、PRD004、PRJ005 等等。

    毕竟只是一个名字,在数字上没有任何意义。

    【讨论】:

    • 但是在插入一些“PRJ”之后,我想要“PRD”作为前缀。也有可能在插入一些“PRD”后我想用“PRJ”插入。
    • 在这种情况下,一旦新前缀出现,您必须以 0 开始您的计数器
    • 我同意 YCS。不要让所有的强迫症都超过你的身份证号码
    猜你喜欢
    • 2013-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多