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

ALTER TABLE document
ALTER COLUMN document_id AUTO_INCREMENT

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

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

当前回答

在我的例子中,它只在我输入非空时起作用。我认为这是一个限制。

ALTER TABLE document MODIFY COLUMN document_id INT NOT NULL AUTO_INCREMENT;

其他回答

你可以这样做:

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

同时设置column为主键和auto_increment:

  mysql> ALTER TABLE persons MODIFY COLUMN personID INT auto_increment PRIMARY KEY;
    Query OK, 10 rows affected (0.77 sec)
    Records: 10  Duplicates: 0  Warnings: 0

    mysql>

在我的例子中,它只在我输入非空时起作用。我认为这是一个限制。

ALTER TABLE document MODIFY COLUMN document_id INT NOT NULL AUTO_INCREMENT;

就像这样:

修改列id int(11)

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

ALTER TABLE document
ALTER COLUMN document_id int AUTO_INCREMENT

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