【问题标题】:Automatically add letters in front of an auto-increment fieild在自动增量字段前面自动添加字母
【发布时间】:2012-03-27 17:48:18
【问题描述】:

是否可以在 MySQL 中的自动增量前面附加一个字母。我的数据库中有几个表,其中一些具有由自动增量创建的唯一 ID。我希望能够通过前面的字母来区分自动生成的数字。

这不是一个绝对必需的功能,但它只会帮助简化小任务。

【问题讨论】:

  • 只是为了澄清一下:您想要的是 tableA 中的所有键的格式为 A123,tableB 中的所有键的格式为 B123,依此类推,这样键变为在数据库中全局唯一?

标签: mysql sql auto-increment


【解决方案1】:

您可以为需要在其 ID 值前具有独特字母的表创建视图,并通过视图读取表:

CREATE VIEW VTableA
AS
SELECT
  CONCAT('A', ID) AS ID,
  other columns
FROM TableA

其他表也一样。

【讨论】:

    【解决方案2】:

    很遗憾,您不能这样做。至少不是在sql中。自动增量字段是整数类型,因此在此处添加字母违反了约束。

    您可以查看下面的链接以找到解决此问题的某种解决方案。

    MySQL auto increment plus alphanumerics in one column

    我希望这可以引导你走向正确的方向。

    【讨论】:

      【解决方案3】:

      最佳答案可能取决于您所说的字母数字 ID 的含义。 alpha 部分是否以某种方式增加,如果是,那么规则是什么?如果 alpha 部分是静态的,那么您甚至不需要在 DB 中使用它:只需在输出时将其添加到数字 ID(可能使用 [s]printf() 或类似的函数来添加零,以便它是固定的)长度?)。但是,在不知道全部要求的情况下,我们都只是猜测

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-11-03
        • 2013-05-21
        • 2010-10-06
        • 1970-01-01
        • 2012-09-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多