web-dev-qa-db-ja.com

列の変更と列の変更

modify column syntaxを使用して列の名前を変更することはできませんが、change column syntaxを使用することはできます。

私の質問は:modify syntaxの主な使用法は何ですか?

例えば、

alter table tablename change col1 col1 int(10) not null

の代わりに

alter table tablename modify col1 int(10) not null



編集済み
置き換えられた質問

modify syntaxの主な用途は何ですか?

上記の質問は以下に置き換えられました

列を変更するのではなく、列を変更する必要があるのはなぜですか?

38
user2053420

列の変更すでにMySQLデータベースを作成しており、列の1つに間違った名前が付けられているという事実に基づいて決定した場合、削除して置換する必要はありません。単にchange columnを使用して名前を変更できます。

ALTER TABLE MyTable CHANGE COLUMN foo bar VARCHAR(32) NOT NULL FIRST;

MODUMY COLUMNこのコマンドは、列の名前を変更せずに、CHANGE COLUMNが実行できるすべての処理を実行します。MySQLで列のサイズを変更する必要がある場合は、modify SQLコマンドを使用できます。これを行うことにより、以前よりも多いまたは少ない文字を許可できます。変更やその他を使用して列の名前を変更することはできません

ALTER TABLE MyTable MODIFY COLUMN foo VARCHAR(32) NOT NULL AFTER baz;

注:ALTER TABLEは、列名、サイズの変更、列の削除を意味するテーブルの変更に使用されます。CHANGECOLUMNおよびMODIFY COLUMNコマンドは、ALTER TABLEコマンドの助けなしでは使用できません。

58
Parvathy

非auto_incrementカラムをauto_incrementステートメントにしようとして1時間以上の努力を重ねた結果、1つの違いが見つかりました:alter table doctor_experience列の変更id int(11)unsigned auto_incrementは機能しますが、statment:alter table doctor_experience列の変更idid int(11)unsigned auto_incrementはエラーを報告します。

3
Hongwei

それは同じです。別の構文(私が知っているOracle ALTER TABLE)をサポートするために行われました。両方を使用できます。

注意: ALTER TABLE CHANGE old_col_name new_col_name構文では、1つのコマンドを使用して列の名前を変更できます。

2
Devart