7

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自动增加,但我得到了这个错误。为什么我会得到这个?

4

3 回答 3

11

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 约束,则此语句将返回错误。)

于 2012-12-19T23:42:21.567 回答
7

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

ALTER TABLE  `blog` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT primary key
于 2012-12-19T23:39:14.820 回答
0

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

通过Primary _keyID列上定义我的错误得到解决。

谢谢,

阿尼鲁德·苏德。

于 2017-02-07T10:00:01.647 回答