zukucode
主にWEB関連の情報を技術メモとして発信しています。

SQL テーブルの列(カラム)の定義情報を変更する方法

SQLでテーブルの列(カラム)の定義情報を変更するにはALTER TABLE文を使用します。

(新たにカラムの定義を追加したい場合はSQL テーブルに列(カラム)を追加をする方法を参照してください。)

以下のようにALTER TABLE xxx MODIFYxxxでテーブル名を指定します。

そのあとに、追加したいカラム名と変更する定義情報をカンマ区切りで指定します。

ALTER TABLE employee MODIFY (
    last_name VARCHAR2(40) DEFAULT '名無しです' NULL,
    age NUMBER(5,0)
)

型を変更する

例えばVARCHAR2(20)で定義されているカラムのサイズを40に変更する場合は以下のようにします。

ALTER TABLE employee MODIFY (
    last_name VARCHAR2(40)
)

NOT NULL制約を設定・削除する

NOT NULL制約を設定するには以下のようにします。

ALTER TABLE employee MODIFY (
    last_name NOT NULL
)

逆にNOT NULL制約を削除するには以下のようにします。

ALTER TABLE employee MODIFY (
    last_name NULL
)

対象のテーブルに登録されているレコードの内容と矛盾が生じる変更を行うとエラーが発生します。

例えば、VARCHAR2(20)のカラムに20バイトのデータを持つレコードが存在する状態で、VARCHAR2(5)に桁数を変更することはできません。


関連記事