Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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 是否将自动增量ID添加到现有表?_Mysql_Sql_Definition_Auto Increment - Fatal编程技术网

Mysql 是否将自动增量ID添加到现有表?

Mysql 是否将自动增量ID添加到现有表?,mysql,sql,definition,auto-increment,Mysql,Sql,Definition,Auto Increment,我有一个预先存在的表,包含“fname”、“lname”、“email”、“password”和“ip”。但现在我想要一个自动递增列。然而,当我进入时: ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT 我得到以下信息: #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key 有什么建议吗?

我有一个预先存在的表,包含“fname”、“lname”、“email”、“password”和“ip”。但现在我想要一个自动递增列。然而,当我进入时:

ALTER TABLE users
ADD id int NOT NULL AUTO_INCREMENT
我得到以下信息:

#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

有什么建议吗?:)

如果要在现有表中添加自动增量,需要运行以下SQL命令:

 ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT primary key

如果要在现有表中添加自动增量,需要运行以下SQL命令:

 ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT primary key

那么,您必须首先删除您拥有的
自动增量
主键
,然后添加您的,如下所示:

-- drop auto_increment capability
alter table `users` modify column id INT NOT NULL;
-- in one line, drop primary key and rebuild one
alter table `users` drop primary key, add primary key(id);
-- re add the auto_increment capability, last value is remembered
alter table `users` modify column id INT NOT NULL AUTO_INCREMENT;

那么,您必须首先删除您拥有的
自动增量
主键
,然后添加您的,如下所示:

-- drop auto_increment capability
alter table `users` modify column id INT NOT NULL;
-- in one line, drop primary key and rebuild one
alter table `users` drop primary key, add primary key(id);
-- re add the auto_increment capability, last value is remembered
alter table `users` modify column id INT NOT NULL AUTO_INCREMENT;
试试这个

ALTER TABLE `users` ADD `id` INT NOT NULL AUTO_INCREMENT;
对于现有主键,请尝试以下操作

ALTER TABLE `users` ADD `id` INT NOT NULL AUTO_INCREMENT;
ALTER TABLE users CHANGE id int( 30 ) NOT NULL AUTO_INCREMENT
对于现有主键

ALTER TABLE users CHANGE id int( 30 ) NOT NULL AUTO_INCREMENT
integer参数基于我的默认sql设置 祝你今天愉快

integer参数基于我的默认sql设置
祝你度过愉快的一天

如果你不在乎自动id是否用作
主键
,你可以这样做

ALTER TABLE `myTable` ADD COLUMN `id` INT AUTO_INCREMENT UNIQUE FIRST;

我刚刚这么做了,效果不错。

如果你不在乎自动id是否被用作主键,你可以这样做

ALTER TABLE `myTable` ADD COLUMN `id` INT AUTO_INCREMENT UNIQUE FIRST;

我刚刚做了这件事,效果很好。

检查已经存在的主键是否有不同的列。如果是,请使用以下方法删除主键:

ALTER TABLE Table1
DROP CONSTRAINT PK_Table1_Col1
GO

然后按原样编写查询。

检查已存在的具有不同列的主键。如果是,请使用以下方法删除主键:

ALTER TABLE Table1
DROP CONSTRAINT PK_Table1_Col1
GO
ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT primary key FIRST

然后按原样编写查询。

首先必须删除表的主键

ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT primary key FIRST
ALTER TABLE nametable DROP PRIMARY KEY
现在你可以添加自动增量

ALTER TABLE nametable ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY

首先,必须删除表的主键

ALTER TABLE nametable DROP PRIMARY KEY
现在你可以添加自动增量

ALTER TABLE nametable ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
这样做:

Make a dump of your database first

Remove the primary key like that
ALTER TABLE yourtable DROP主键

Add the new column like that
ALTER TABLE yourtable add column Id INT NOT NULL自动增量首先,添加主键Id(Id)

将查看该表并更新AutoInc.

如下所示:

Make a dump of your database first

Remove the primary key like that
ALTER TABLE yourtable DROP主键

Add the new column like that
ALTER TABLE yourtable add column Id INT NOT NULL自动增量首先,添加主键Id(Id)


将查看该表并更新AutoInc。

只需将“添加”更改为“修改”,它就会工作

替换

ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT


只需将ADD更改为MODIFY,它就可以工作了

替换

ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT


删除表的主键(如果存在):

 ALTER TABLE `tableName` DROP PRIMARY KEY;
将自动增量列添加到表中:

ALTER TABLE `tableName` ADD `Column_name` INT PRIMARY KEY AUTO_INCREMENT;

将要考虑的列修改为主键:

alter table `tableName` modify column `Column_name` INT NOT NULL AUTO_INCREMENT PRIMARY KEY;
ALTER TABLE `tableName ` MODIFY COLUMN `id` BIGINT(11) UNSIGNED PRIMARY KEY AUTO_INCREMENT;

删除表的主键(如果存在):

 ALTER TABLE `tableName` DROP PRIMARY KEY;
将自动增量列添加到表中:

ALTER TABLE `tableName` ADD `Column_name` INT PRIMARY KEY AUTO_INCREMENT;

将要考虑的列修改为主键:

alter table `tableName` modify column `Column_name` INT NOT NULL AUTO_INCREMENT PRIMARY KEY;
ALTER TABLE `tableName ` MODIFY COLUMN `id` BIGINT(11) UNSIGNED PRIMARY KEY AUTO_INCREMENT;
试试这个。不需要删除主键


试试这个。无需删除主键。

如果运行以下命令:

ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT PRIMARY KEY;
ALTER TABLE users MODIFY id int NOT NULL AUTO_INCREMENT PRIMARY KEY;
这将显示错误:

ERROR 1060 (42S21): Duplicate column name 'id'
这是因为此命令将尝试将名为
id
的新列添加到现有表中

要修改现有列,必须使用以下命令:

ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT PRIMARY KEY;
ALTER TABLE users MODIFY id int NOT NULL AUTO_INCREMENT PRIMARY KEY;

这应该适用于更改现有的列约束

如果运行以下命令:

ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT PRIMARY KEY;
ALTER TABLE users MODIFY id int NOT NULL AUTO_INCREMENT PRIMARY KEY;
这将显示错误:

ERROR 1060 (42S21): Duplicate column name 'id'
这是因为此命令将尝试将名为
id
的新列添加到现有表中

要修改现有列,必须使用以下命令:

ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT PRIMARY KEY;
ALTER TABLE users MODIFY id int NOT NULL AUTO_INCREMENT PRIMARY KEY;

这应该适用于更改现有的列约束

对于PostgreSQL,您必须使用串行而不是自动增量

ALTER TABLE your_table_name ADD COLUMN id SERIAL NOT NULL PRIMARY KEY

对于PostgreSQL,您必须使用串行而不是自动增量

ALTER TABLE your_table_name ADD COLUMN id SERIAL NOT NULL PRIMARY KEY

此SQL请求适用于我:

ALTER TABLE users
CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT ;

此SQL请求适用于我:

ALTER TABLE users
CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT ;

从表中删除主索引:

ALTER TABLE `tableName` DROP INDEX `PRIMARY`;
然后添加id列(没有主索引)。我使用了一个大的int,因为我将有很多数据,但是int(11)应该也可以工作:

ALTER TABLE `tableName` ADD COLUMN `id` BIGINT(11) NOT NULL FIRST;
然后使用自动增量修改列(感谢php)。它必须是主键:

alter table `tableName` modify column `Column_name` INT NOT NULL AUTO_INCREMENT PRIMARY KEY;
ALTER TABLE `tableName ` MODIFY COLUMN `id` BIGINT(11) UNSIGNED PRIMARY KEY AUTO_INCREMENT;

我刚刚在我的一个表上尝试了这个方法,它似乎起了作用。

从表中删除主索引:

ALTER TABLE `tableName` DROP INDEX `PRIMARY`;
然后添加id列(没有主索引)。我使用了一个大的int,因为我将有很多数据,但是int(11)应该也可以工作:

ALTER TABLE `tableName` ADD COLUMN `id` BIGINT(11) NOT NULL FIRST;
然后使用自动增量修改列(感谢php)。它必须是主键:

alter table `tableName` modify column `Column_name` INT NOT NULL AUTO_INCREMENT PRIMARY KEY;
ALTER TABLE `tableName ` MODIFY COLUMN `id` BIGINT(11) UNSIGNED PRIMARY KEY AUTO_INCREMENT;

我刚刚在我的一个表上尝试了这个方法,它似乎起到了作用。

你能发布你现有的表定义吗?请发布
描述用户的输出。
尝试了这个方法,但它只返回表。你需要什么?@CharlesJenkins你能选择正确的答案吗?MODIFY也可以用作:ALTER TABLE users MODIFY id int NOT NULL AUTO_INCREMENT;/*2019年8月*/你能发布你现有的表定义吗?请发布
描述用户的输出
尝试过,但它只是返回表。你需要什么?@CharlesJenkins你能选择正确的答案吗?MODIFY也可以用作:ALTER TABLE users MODIFY id int NOT NULL AUTO_INCREMENT;/*2019年8月*/这不起作用!出现此错误:#1068-定义了多个主键您得到了定义了的多个主键,因为您的表中已经有一个主键。一个表只能有一个主键。在没有主键的表上重试上述命令为避免“多主键”错误,请在定义新主键之前删除现有主键:
ALTER table users drop primary key,ADD id INT NOT NULL AUTO_INCREMENT primary key
无效!出现此错误:#1068-定义了多个主键您得到了定义了的多个主键,因为您的表中已经有一个主键。一个表只能有一个主键。在没有主键的表上重试上述命令为避免“多主键”错误,请在定义网元之前删除现有主键