【发布时间】:2013-01-14 17:08:54
【问题描述】:
我目前有一个带有唯一索引列“名称”的索引列的表。目前,“名称”列是长度为 25 的 varchar。我想将其增加到 50。我正在尝试使用
alter table `meal_prices` modify `name` varchar(50);
这样做。但是,这似乎不会影响该列。我觉得这不起作用,因为该列是索引列,但我不确定。有什么建议么?非常感谢。
【问题讨论】:
-
它会抛出错误吗?还是什么都不做?
-
据我所知,它什么也不做。我正在通过 HeidiSQL Portable 运行它。但是,如果错误发生并且没有出现,Heidi 通常会告诉我任何错误。
-
看起来应该可以了。你确定它没有改变数据类型吗?如果你运行
show create table TABLENAME,它显示数据类型没有变化? -
啊,不过,通过 Heidi 本身更改长度是有意义的。这样做,Heidi 打印出它使用的代码
ALTER TABLE 'meal_prices' CHANGE COLUMN 'name' 'name' VARCHAR(50) NOT NULL AFTER 'the_column_before_name';。这似乎有效,我将只使用它。不过感谢您的帮助! -
CHANGE COLUMN 和 MODIFY COLUMN 做同样的事情。两种变体都应该工作。
标签: mysql indexing key varchar maxlength