为什么MySQL没有重命名列的命令?

3

我们需要在mysql中用以下语法重命名列,

alter table table_name change old_name new_name column_def

为什么不使用以下语法呢,

alter table table_name rename old_name new-name


参照完整性基于表名。DDL更改可能非常耗费时间和精力进行QA,并且应该提供一些洞察为什么DBA会采取这样的行动。 - OMG Ponies
MySQL...ISAM...完整性?哈哈。好的 :-) 这只是 MySQL 相对于其他供应商的实现细节(原因有争议但不是很有趣)-- 如果 SQL-xx DDL 符合性被考虑进来,那就有点有趣了。 - user166390
1个回答

1
我认为原因是,当你重命名时,实际上也改变了属性的类型。所以更改更准确 :)

2
我会说这是MySQL常见的粗心:他们可以恢复表的元数据中被省略的列类型。但是现在我必须闭嘴,免得引发战火 :) - 9000
@SpyrosP 嗯,这并不能解释为什么MySQL不能简单地实现重命名功能。 - Pacerier
当然,这里没有直接的解释。这只是惯例而已。重命名就像Unix中的cp命令一样,如问题所述。然而,MySQL遵循不同的惯例,因此alter table似乎非常接近一般语法。 - Spyros

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接