给现有表添加自动递增的ID?

117

我有一个预先存在的表格,包含'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

有什么建议吗?:)


你能发布一下你现有的表定义吗? - Taryn
请输出“describe users”的描述 - DKSan
尝试过了,但它只返回表格。你需要什么? - Charles Jenkins
@CharlesJenkins,您能选择正确的答案吗? - Wadih M.
MODIFY 也可以用作:ALTER TABLE users MODIFY id int NOT NULL AUTO_INCREMENT; /2019年8月/ - Vilas Joshi
17个回答

3
ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT primary key FIRST

1
这个 SQL 请求对我有效:
ALTER TABLE users
CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT ;

1
对于PostgreSQL,您需要使用SERIAL而不是auto_increment。
ALTER TABLE your_table_name ADD COLUMN id SERIAL NOT NULL PRIMARY KEY

1
如果您想添加一个带有主键和自增标识的ID:
ALTER TABLE user ADD id INT NOT NULL AUTO_INCREMENT FIRST , ADD PRIMARY KEY (id); 

0
ALTER TABLE `table` ADD `id` INT NOT NULL AUTO_INCREMENT unique

试试这个。不需要删除您的主键。


-1

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

ALTER TABLE Table1
DROP CONSTRAINT PK_Table1_Col1
GO

然后按照原样编写您的查询。


-2

按照以下步骤进行:

Make a dump of your database first

Remove the primary key like that

ALTER TABLE yourtable DROP PRIMARY KEY

的意思是“从表yourtable中删除主键”。
Add the new column like that

ALTER TABLE yourtable ADD COLUMN Id INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY Id(Id)

表格将被查看并更新自增值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接