现有表中添加自动递增的主键 - SQL
问题描述:
我有已填充了120条记录,我曾尝试下面的SQL查询现有的产品表:现有表中添加自动递增的主键 - SQL
ALTER TABLE product ADD product_id
INT PRIMARY KEY AUTO_INCREMENT
但它给我的错误:
Error: #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
答
每个表格只能有一个自动增量字段。但是,您可以根据自动增量字段计算字段。或者,你可以有一个int字段,通过前端代码或触发器来管理序列。也可以在SQL Server中使用sequence。
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中做同样的事情。
答
朋友 如果试图这样做在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)
假设这将对你有帮助。
答
这是变通
- 创建一个简单的列与自动增量
- 浏览表,并再次使这个新添加的列作为主键
你完成了!
:)感谢那些不在*的家伙
你试过哪个查询? – hjpotter92
ALTER TABLE产品ADD product_id INT PRIMARY KEY AUTO_INCREMENT; –
'ALTER TABLE product ADD列product_id INT PRIMARY KEY AUTO_INCREMENT;' –