3

我有一个专栏,char(9)。我想将它增加到 char(10)。这会占用我的数据库吗?您可以像这样增加它而不会在数据库中出现问题吗?谢谢。

4

3 回答 3

3

如果将列从 更改为char(9)char(10)那么 MySQL 将重建整个表,用一个空格右填充现有值。由于重建,执行时间将取决于表的大小,因此请适当计划。

于 2012-05-18T16:01:38.070 回答
3

只要没有什么取决于 char 列是 9 个字符。大多数情况下这应该没问题(就数据库继续运行而言应该没问题),但是您需要仔细考虑是否有任何软件正在使用列宽来做任何事情。

例如,如果软件期望所有值都是 9 个字符(并且它不会修剪字符串),您可能会发现自己遇到了问题。

我建议为可变长度数据使用 varchar

于 2012-05-18T15:59:41.673 回答
1

刚试过这个,不需要打电话给炸弹小队,哈哈:

ALTER TABLE `mytable` CHANGE `myfield` `myfield` CHAR(10) CHARSET latin1 COLLATE latin1_swedish_ci NULL; 
于 2012-05-18T16:00:59.660 回答