2016-04-28 88 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";