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)