Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql错误:#1075_Mysql_Sql_Mysql Error 1075 - Fatal编程技术网

Mysql错误:#1075

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

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需要将自动递增列作为表的主键。在末尾添加
主键
约束

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`) ;