MySQLの列定義を変更する方法は?


156

testというmySQLテーブルがあります。

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

locationExpect列を次のように変更します。

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

どうすればそれをすばやく行うことができますか?

回答:


273

作成後にテーブルを変更するということですか?その場合は、特にalter tableを使用する必要があります。

ALTER TABLE tablename MODIFY COLUMN new-column-definition

例えば

ALTER TABLE test MODIFY COLUMN locationExpect VARCHAR(120);

5
MySQLWorkbenchには、このコマンドを拒否する構文チェックのバグがあります。しかし、それは正しいコマンドです。
Steven Lu

注意:上記の例では、COLUMNもNull = Yes、Default = Nullに変更されます。Nullが必要ない場合は、別の値を指定する必要があります。
ガイゴードン

元の質問のマスクの @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);

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.