Mysql – 将列改为AUTO_INCREMENT

我试图修改一个表,使其主键列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 auto_increment 

罗马是正确的,但请注意,auto_increment列必须是PRIMARY KEY或UNIQUE KEY的一部分(几乎100%的情况下,它应该是构成PRIMARY KEY的唯一列):

 ALTER TABLE document MODIFY document_id INT AUTO_INCREMENT PRIMARY KEY 

您必须在auto_increment指令之前指定列的types,即ALTER TABLE document MODIFY COLUMN document_id INT AUTO_INCREMENT

在我的情况下,只有当我把不为空。 我认为这是一个限制。

ALTER TABLE document MODIFY COLUMN document_id INT NOT NULL AUTO_INCREMENT;

AUTO_INCREMENT是列的数据types的一部分,您必须再次为该列定义完整的数据types:

 ALTER TABLE document ALTER COLUMN document_id int AUTO_INCREMENT 

int作为一个例子,你应该把它设置为列以前的types)

SQL来做到这一点将是:

 ALTER TABLE `document` MODIFY COLUMN `document_id` INT AUTO_INCREMENT; 

有几个原因,你的SQL可能无法正常工作。 首先,您必须重新指定数据types(在这种情况下为INT )。 此外,你试图改变的列必须被索引(它不一定是主键,但通常这是你想要的)。 此外,每个表格只能有一个AUTO_INCREMENT列。 所以,你可能希望运行下面的SQL(如果你的列没有索引):

 ALTER TABLE `document` MODIFY `document_id` INT AUTO_INCREMENT PRIMARY KEY; 

您可以在MySQL文档中find更多信息: http : //dev.mysql.com/doc/refman/5.1/en/alter-table.html修改列语法和http://dev.mysql.com/doc有关指定列的更多信息,请参阅/refman/5.1/en/create-table.html

AUTO_INCREMENT是列的数据types的一部分,您必须再次为该列定义完整的数据types:

 ALTER TABLE document MODIFY COLUMN document_id int AUTO_INCREMENT 

(int作为一个例子,你应该把它设置为列以前的types)

如果没有上述的作品尝试这一点。 这是我在MYSQL中做的,是的,你需要写两次列名(document_id)。

 ALTER TABLE document CHANGE COLUMN document_id document_id INT(11) NOT NULL AUTO_INCREMENT ; 

以下声明作品。 请注意,您需要再次提及列名称的数据types

 ALTER TABLE document MODIFY COLUMN document_id int AUTO_INCREMENT; 

要修改mysql中的列,我们使用alter和modify关键字。 假设我们创build了如下表格:

 create table emp( id varchar(20), ename varchar(20), salary float ); 

现在我们要修改列id的types为自动增量的整数。 你可以用这样的命令来做到这一点:

 alter table emp modify column id int(10) auto_increment; 

alter table tbl_user MODIFY COLUMN id int(10)auto_increment;

以前的表格语法:

 CREATE TABLE apim_log_request (TransactionId varchar(50) DEFAULT NULL); 

要将TransactionId更改为自动增量,请使用此查询

 ALTER TABLE apim_log_request MODIFY COLUMN TransactionId INT auto_increment; 

使用以下查询:

 ALTER TABLE YourTable DROP COLUMN IDCol ALTER TABLE YourTable ADD IDCol INT IDENTITY(1,1)