我试图修改一个表,使其主键列AUTO_INCREMENT后的事实。我已经尝试了下面的SQL,但得到了一个语法错误通知。

ALTER TABLE document
ALTER COLUMN document_id AUTO_INCREMENT

是我做错了什么还是这不可能?

+--------------------+
| VERSION()          |
+--------------------+
| 5.0.75-0ubuntu10.2 |
+--------------------+

当前回答

AUTO_INCREMENT是列数据类型的一部分,你必须再次定义该列的完整数据类型:

ALTER TABLE document
ALTER COLUMN document_id int AUTO_INCREMENT

(以int为例,您应该将其设置为列之前的类型)

其他回答

由于SQL标签附在这个问题上,我真的认为所有的答案都错过了一个主要的点。

MODIFY命令在SQL server中不存在,所以当你运行

修改COLUMN的主键

在这种情况下,您可以将新列添加为INT IDENTITY

ALTER TABLE Satellites
   ADD ID INT IDENTITY
       CONSTRAINT PK_YourTable PRIMARY KEY CLUSTERED;

OR


Fill the existing null index with incremental numbers using this method,
DECLARE @id INT
SET @id = 0 
UPDATE Satellites SET @id = SatelliteID = @id + 1 

AUTO_INCREMENT是列数据类型的一部分,你必须再次定义该列的完整数据类型:

ALTER TABLE document
MODIFY COLUMN document_id int AUTO_INCREMENT

(以int为例,您应该将其设置为列之前的类型)

ALTER TABLE document MODIFY COLUMN document_id INT auto_increment

下面的陈述是正确的。注意,您需要再次为列名提到数据类型(重新声明列名之前的数据类型)。

ALTER TABLE document
MODIFY COLUMN document_id int AUTO_INCREMENT;

你可以这样做:

 alter table [table_name] modify column [column_name] [column_type] AUTO_INCREMENT;