2012-12-18 94 views
1

如何使用alter语句在mysql.am中自动增量地将特定列设置为主键。但当我在mysql中更改alter语句时出现错误。在mysql中添加具有自动增量的主键

alter statement 
--------------- 

ALTER TABLE tbl_travelplan add COLUMN TRREQNO id INT(11) NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY (id);  
+0

什么是错误讯息? –

+0

@sashikant错误代码:1064.您的SQL语法错误;检查与您的MySQL服务器版本相对应的手册,以便在第1行附近使用'id INT(11)NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(id)'附近的正确语法 – vps

+0

请求帮助,但不提供错误,错误通常不需要。 –

回答

2

我认为真正的问题是在您的查询TRREQNO和ID之间的空间。 尝试查询我已经把下面:

ALTER TABLE tbl_travelplan add TRREQNO_id INT(11) NOT NULL primary KEY AUTO_INCREMENT; 
+0

主键已存在 –

+0

您的意思是说,您面临的问题与您在上述评论中提到的错误相同? –

3

您需要先删除主键: 试试这个::

ALTER TABLE tbl_travelplan add TRREQNO_id INT(11) NOT NULL AUTO_INCREMENT, DROP PRIMARY KEY,PRIMARY KEY;  

ALTER TABLE tbl_travelplan add TRREQNO_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY;  
+4

Uhm,wtf?为什么这个答案被接受,为什么它会得到upvotes?它甚至不应该工作? – fancyPants

0

你必须放弃现有的索引首先使用

DROP_INDEX [your_existing_index] ON tbl_travelplan 
-1

我认为该表已经有主键。所以只有这种错误才会出现。 请删除主键并运行您的查询。

请运行此查询

ALTER TABLE `table_name` add TRREQNO id INT(11) NOT NULL AUTO_INCREMENT DROP PRIMARY KEY , 
ADD PRIMARY KEY (`id`) 
0

您可以使用此查询

alter table tbl_travelplan 
    add TRREQNO_id int(11) NOT NULL AUTO_INCREMET PRIMARY KEY 
相关问题