2014-03-13 27 views
1

在MySQL的一些版本(如5.0.77, for Win32 (ia32))我在與下面的查詢MySQL的:具有與auto_incriment柱更名麻煩

ALTER TABLE `table_name` CHANGE COLUMN `old` `new` integer auto_increment 

我越來越Incorrect table definition; there can be only one auto column and it must be defined as a key

怎麼說也煩惱中省略?

+0

可能重複的http://stackoverflow.com/questions/4002340/how-to-rename-a-table-column-in-mysql –

回答

2

如果列是已經一個自動增量主鍵,只需更改它的名稱並提供數據類型。 (如果這裏沒有提供數據類型,MySQL會報錯)。現有的自動增量和密鑰定義將被保留。

ALTER TABLE `table_name` CHANGE COLUMN `old` `new` INT 

如果要更改其名稱,使自動遞增而以前有沒有一個,你需要指定索引或使其在同一語句中的主鍵:

ALTER TABLE `table_name` CHANGE COLUMN `old` `new` INT PRIMARY KEY AUTO_INCREMENT 

但是,請注意,如果您有此表上的另一個列已被用作AUTO_INCREMENT,則報告的錯誤是正確的,您將無法指定第二個AUTO_INCREMENT列。你必須選擇一個或另一個。

0

您需要先禁用自動增量,然後進行更改,然後將其恢復爲auto_increment。 試試這個(這將其更改爲INT):

ALTER TABLE `table_name` MODIFY COLUMN `old` INT; 
ALTER TABLE `table_name` CHANGE COLUMN `old` `new` integer 
ALTER TABLE `table_name` MODIFY COLUMN `new` INT AUTO_INCREMENT; 
0

試試這個:

ALTER TABLE `t1` CHANGE COLUMN `uid` `id` INT AUTO_INCREMENT; 

另外一個有趣的答案:

ALTER TABLE table_name MODIFY COLUMN 'old_id','new_id' INT auto_increment; 

click