【问题标题】:#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key#1075 - 表定义不正确;只能有一个自动列,并且必须将其定义为键
【发布时间】:2013-07-12 02:05:12
【问题描述】:

我有一个序列号。这是自动递增的列,但我想要注册 ID。成为主键,而 MySQL 只是不允许我这样做。有什么办法可以做到吗?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    如果列是PRIMARY KEYINT,则只能将列定义为AUTO_INCREMENT 不确定,但BIGINT 也可以使用 .既然您希望将SerialNo 设置为AUTO_INCREMENT,为什么不将其设置为PRIMARY KEY 并将EnrollmentID 设置为UNIQUE

    CREATE TABLE TableName
    (
        SerialNo INT AUTO_INCREMENT PRIMARY KEY,
        EnrollmentID INT UNIQUE,
        -- other columns...
    )
    

    【讨论】:

    • 这是有道理的。但是,主键的全部目的是什么,唯一的似乎是在做同样的任务。
    【解决方案2】:

    确保将序列号列定义为UNIQUE

    【讨论】:

      猜你喜欢
      • 2017-05-31
      • 2013-12-17
      • 1970-01-01
      • 2019-01-02
      • 2015-04-05
      • 2015-11-17
      • 1970-01-01
      • 1970-01-01
      • 2020-01-01
      相关资源
      最近更新 更多