【问题标题】:MySQL Primary Key Field TypeMySQL 主键字段类型
【发布时间】:2012-11-09 14:13:19
【问题描述】:

我正在处理一些事务性数据,但我的主键字段存在问题。从我的订单管理系统和 Google Analytics 导入数据时,OrderID 字段具有以下两种值格式:

123456  
002-0130775-1483424

如何将此字段格式化为主键?

提前感谢您的帮助! :)

(运行 MySQL 5.5.27)

【问题讨论】:

  • 在最坏的情况下,你可以使用CHAR(20)

标签: mysql types primary-key field


【解决方案1】:

您应该创建一个包含任意整数(“内部”键)的自动递增主键字段...您可以将实际的“键”数据放在另一个名为 OrderNumber 或类似名称的字段中,并在其上放置唯一索引它。

【讨论】:

    【解决方案2】:

    是的,将主键保留在内部有助于使您免受变化的影响。任何可以作为数据公开的东西都应该被重新考虑为密钥。

    【讨论】:

      【解决方案3】:

      作为一个选项,您可以设置一个综合主键(仅供您的内部参考)和一个索引 CHAR(20) 列(可能附加一个唯一索引以保持一致性)——这似乎是一个更好的解决方案,因为有一天,您可能希望与可能与现有数据发生冲突的另一个系统集成。

      【讨论】:

      • 这成功了!谢谢 :) 决定走这条路除了其他人,因为就你而言,原始数据受到保护,不受未来系统的影响。并不总是关于你今天需要什么,而是你明天需要什么......
      【解决方案4】:

      看,主键本质上应该是bigint,但是你可以修改你想要的方式。 MYSQL 5.5.27 较之前版本有一些重要变化,请点击链接 https://dev.mysql.com/doc/refman/5.5/en/news-5-5-27.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-04
        • 1970-01-01
        • 1970-01-01
        • 2011-01-09
        • 1970-01-01
        • 2015-12-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多