【问题标题】:Mysql Error: #1075mysql 错误:#1075
【发布时间】:2012-12-07 10:21:58
【问题描述】:

SQL 查询:

ALTER TABLE  `blog` CHANGE  `id`  `id` BIGINT NOT NULL AUTO_INCREMENT

MySQL 说:

#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key 

我正在尝试创建一个博客,并且我已经完成了代码。现在,我需要使id 自动增加,但我得到了这个错误。为什么我会得到这个?

【问题讨论】:

    标签: mysql sql mysql-error-1075


    【解决方案1】:

    要解析#1075 error 消息,您需要将至少一列标记为primary_keyunique_key。你忘了做。

    通过在 ID 列上定义Primary _key,我的错误得到解决。

    谢谢,

    阿尼鲁德·苏德。

    【讨论】:

      【解决方案2】:

      MySQL 正在返回该错误(很可能),因为在 id 列上没有定义唯一索引。 (MySQL 要求有一个唯一索引。另一种可能性,您可能已经想到,表中只能有一个定义为 AUTO_INCREMENT 的列。)

      要使该列成为 AUTO_INCREMENT,您可以在 id 列上添加 UNIQUE 约束或 PRIMARY KEY 约束。例如:

      ALTER TABLE `blog` ADD CONSTRAINT `blog_ux` UNIQUE (`id`) ;
      

      (请注意,如果 id 列存在任何重复值,此语句将返回错误。)

      或者,您可以将 id 列设置为表的 PRIMARY KEY(如果表尚未定义 PRIMARY KEY 约束)。

      ALTER TABLE `blog` ADD PRIMARY KEY (`id`) ;
      

      (请注意,如果 id 列存在任何重复值,或者如果该列中存储了任何 NULL 值,或者表上已经定义了 PRIMARY KEY 约束,则此语句将返回错误。)

      【讨论】:

        【解决方案3】:

        MySQL 要求您将自增列作为表的主键。在末尾添加primary key 约束

        ALTER TABLE  `blog` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT primary key
        

        【讨论】:

        • 澄清一下,MySQL 不要求列作为表的主键才能使其成为 AUTO_INCREMENT 列。 MySQL 要求在列上有一个 UNIQUE 约束。作为 PRIMARY KEY 列的列有资格成为 AUTO_INCREMENT;但严格来说,这不是一项要求。
        猜你喜欢
        • 2016-04-18
        • 2021-01-04
        • 1970-01-01
        • 2019-09-16
        • 2011-12-28
        • 2014-10-20
        • 2015-04-25
        • 2018-07-03
        相关资源
        最近更新 更多