Mysql错误:#1075
SQL查询:Mysql错误:#1075,mysql,sql,mysql-error-1075,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自动增加,但是我得到了这个错误。为什么会出现这种情况?MyS
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需要将自动递增列作为表的主键。在末尾添加主键
约束
ALTER TABLE `blog` MODIFY COLUMN `id` BIGINT NOT NULL AUTO_INCREMENT primary key
MySQL返回该错误(很可能是因为
id
列上没有定义唯一的索引)。(MySQL要求有一个唯一的索引。另一种可能性是,表中只能有一列定义为AUTO_INCREMENT,您可能已经知道了。)
要使该列成为自动增量,可以在id
列上添加唯一约束或主键约束。例如:
ALTER TABLE `blog` ADD CONSTRAINT `blog_ux` UNIQUE (`id`) ;
(请注意,如果id列存在任何重复值,则此语句将返回错误。)
或者,您可以使id列成为表的主键(如果表尚未定义主键约束)
(请注意,如果id列存在任何重复值,或者如果该列中存储了任何空值,或者如果表上已经定义了主键约束,则此语句将返回错误。)要解决1075错误
消息,您需要将至少一列标记为主键
或唯一键
。你忘了做的事
通过在ID列上定义主键
,我的错误得以解决
谢谢
Anirudh Sood。为了使表成为自动增量列,MySQL不要求将列作为表的主键。MySQL需要的是列上有一个唯一的约束。作为主键列的列可以自动递增;但严格来说,这不是一项要求。
ALTER TABLE `blog` ADD PRIMARY KEY (`id`) ;