Mysql错误:#1075

时间:2012-12-19 23:33:44

标签: mysql sql mysql-error-1075

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

3 个答案:

答案 0 :(得分:9)

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约束。)< / p>

答案 1 :(得分:7)

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

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

答案 2 :(得分:-1)

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

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

感谢,

Anirudh Sood。