如何更改MySQL列定义?


156

我有一个名为test的mySQL表:

create table test(
    locationExpect varchar(120) NOT NULL;
);

我想将locationExpect列更改为:

create table test(
    locationExpect varchar(120);
);

如何快速完成?

Answers:


273

创建表后是要更改表吗?如果是这样,则需要使用alter table,尤其是:

ALTER TABLE tablename MODIFY COLUMN new-column-definition

例如

ALTER TABLE test MODIFY COLUMN locationExpect VARCHAR(120);

5
所以... MySQLWorkbench有一个语法检查错误,该错误拒绝此命令。但是,这是正确的命令。
史蒂文·卢

注意:以上示例还将COLUMN更改为Null = Yes,Default = Null。如果不想使用Null,则需要指定其他值。
Guy Gordon

原始问题Mask中的@GuyGordon 希望将列从NOT NULL允许为null 更改为空白,因此我认为此示例仍然可以。同意如果需要不同的默认值,则需要稍作更改。
mikej

43

语法来改变列名MySQL的

alter table table_name change old_column_name new_column_name data_type(size);

例:

alter table test change LowSal Low_Sal integer(4);

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.