到目前爲止,我這樣做是這樣的:MySQL - 如何重命名列?
"ALTER TABLE `database_name`.`table_name` CHANGE
`old_column_name` `new_column_name` column_type_now"
但是,這是有問題的,如果列有沒有空的默認值或者是一個關鍵,因爲當列被重命名這些東西被丟棄。
我該如何處理這個問題?
到目前爲止,我這樣做是這樣的:MySQL - 如何重命名列?
"ALTER TABLE `database_name`.`table_name` CHANGE
`old_column_name` `new_column_name` column_type_now"
但是,這是有問題的,如果列有沒有空的默認值或者是一個關鍵,因爲當列被重命名這些東西被丟棄。
我該如何處理這個問題?
嘗試:
ALTER TABLE `database_name`.`table_name` CHANGE
`old_column_name` `NEW Column Name` varchar(255) DEFAULT NOT NULL
替換用的Varchar列的你正在做的類型。
你也可以讓它
`DEFAULT NULL`
如果你喜歡它爲空。
是否有效?
謝謝,但這不處理鍵或約束... – MATH000
哦,對不起。除此之外,我唯一知道的就是創建一個新表並導入數據,但這非常耗時。而且不具有可擴展性。 –
試試這個:
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";
[MySQL中重命名外鍵列]的可能的複製(http://stackoverflow.com/questions/2014498/renaming-foreign-key-columns-in-mysql) – MikeTheLiar
這個問題爲什麼這個問題用vb.net標記? – Jeroen