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
自动增加,但是我得到了这个错误。我为什么要这个?
答案 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_key
或unique_key
。你忘记做了。
通过在 ID 列上定义Primary _key
,我的错误就解决了。
感谢,
Anirudh Sood。