现有表添加自动增量主键 - sql

时间:2016-05-16 05:43:38

标签: mysql sql

我有一个已经填充了120条记录的现有产品表,我尝试过以下SQL查询:

ALTER TABLE product ADD product_id 
    INT PRIMARY KEY AUTO_INCREMENT

但它给了我错误:

  

错误:#1075 - 表定义不正确;只能有一个自动列,必须将其定义为键

3 个答案:

答案 0 :(得分:1)

这是解决方法

  • 使用自动增量创建一个简单的列
  • 浏览表格并再次将此新添加的列作为主键

你完成了!

:)感谢不在Stackoverflow中的Guy

答案 1 :(得分:0)

朋友 如果您尝试在MSSQL中执行此操作,那么您的脚本将是这个。 假设你的桌子在

之下
create table product
(
 name varchar(20),
 product_type varchar(20)
)

并假设您在此表中输入了一些记录,之后您要添加一个名为product_id且具有自动增量和主键的列。然后使用下面的

脚本
alter table product add product_ID int primary key identity(1,1)

假设这对您有帮助。

答案 2 :(得分:-1)

每个表只能有一个自动增量字段。但是,您可以根据自动增量字段设置计算字段。或者,您可以有一个int字段,您可以通过前端代码或触发器来管理序列。此外,您还可以在SQL Server中使用clue

CREATE SEQUENCE MySequence START WITH 100;

CREATE TABLE MyTable
(
    RealIdentity INT IDENTITY(1,1),
    RandomCol NVARCHAR(100),
    FakeIdentity INT DEFAULT NEXT VALUE FOR MySequence
);

更新 - MySQL方式

我刚注意到你的问题是针对MySQL的。以上答案适用于MS SQL。以下是您在MySQL中如何做同样的事情。

sequence

How do I create a sequence in MySQL?