2016-04-28 145 views
0

到目前爲止,我這樣做是這樣的:MySQL - 如何重命名列?

"ALTER TABLE `database_name`.`table_name` CHANGE 
`old_column_name` `new_column_name` column_type_now" 

但是,這是有問題的,如果列有沒有空的默認值或者是一個關鍵,因爲當列被重命名這些東西被丟棄。

我該如何處理這個問題?

+1

[MySQL中重命名外鍵列]的可能的複製(http://stackoverflow.com/questions/2014498/renaming-foreign-key-columns-in-mysql) – MikeTheLiar

+0

這個問題爲什麼這個問題用vb.net標記? – Jeroen

回答

0

嘗試:

ALTER TABLE `database_name`.`table_name` CHANGE 
`old_column_name` `NEW Column Name` varchar(255) DEFAULT NOT NULL 

替換用的Varchar列的你正在做的類型。

你也可以讓它

`DEFAULT NULL` 

如果你喜歡它爲空。

是否有效?

+0

謝謝,但這不處理鍵或約束... – MATH000

+0

哦,對不起。除此之外,我唯一知道的就是創建一個新表並導入數據,但這非常耗時。而且不具有可擴展性。 –

0

試試這個:

ALTER TABLE "table_name" CHANGE "old_column_name" "new_column_name" DATATYPE; 

FOR ORACLE: 

ALTER TABLE "table_name" RENAME COLUMN "old_column_name" TO "new_column_name";