MySQL

2013-01-07, mysql

列の定義(制約)を変更する

ある列(以下ではc1)のNULL値を不許可にしたい場合、ALTER TABLE構文を使って以下のように記述します。まず、CHANGE構文を使った場合は、列名の変更も可能なため、旧名と新規名の2つを指定する必要があります。名前の変更が無い場合は、どちらも同じ値にしておくことも可能です。

ALTER TABLE t CHANGE c1 c1 INTEGER NOT NULL;

CHANGEから冗長性を省いたMODIFY構文を使うことも出来ます。以下の例は上記と同じ結果になります。

ALTER TABLE t MODIFY c1 INTEGER NOT NULL;

もう一つ紛らわしいのがALTER構文です。これはデフォルト値の変更や解除にだけ使われるもので、上記のような列名や型の変更には利用できません。

ALTER TABLE t ALTER c1 DROP DEFAULT;

参考URL

この記事は役に立ちましたか?