ページの先頭行へ戻る
Symfoware Server V10.0.0 SQLリファレンス

3.2 ALTER TABLE文(表定義変更文)

機能

表の定義を変更します。列定義追加、列定義削除、表と列の注釈定義変更があります。

記述形式

列定義追加

列定義削除

注釈定義変更

参照項番

権限

一般規則

列定義追加
  • 列定義によって定義される列が、変更対象表に追加されます。このとき、列の定義順は既存の列の後になります。

  • 列名は、変更対象表内で一意の名前であることが必要です。

  • すでに存在する行に追加される列の値は、既定値になります。また、DEFAULT句にUSERを指定している場合は、定義文実行のユーザ名になります。

  • NOT NULL制約を指定した場合、DEFAULT句にNULL以外を指定することが必要です。

  • DEFAULT句を指定していない場合の列の値は、NULLになります。

  • 格納構造がSEQUENTIALの場合、BLOB型の列を追加するとき、表の行は、ページ長を超えてもかまいません。ただし、格納構造がRANDOMの場合はページ長を超える列の追加はできません。

  • 以下のいずれかの条件に該当するSQL手続き文を含むプロシジャルーチンが定義されている場合は、列定義追加によって影響を受けるため、列を追加することはできません。

    • 問合せ式、問合せ指定および単一行SELECT文の選択リストの次数が増加して、実行できなくなるSQL手続き文

    • INSERT文の挿入列リストが省略されていて、挿入列の数が増加して実行できなくなるSQL手続き文

    • 列名が一意に決定できなくなるSQL手続き文

  • 以下の条件に該当するSQL手続き文を含むトリガが定義されている場合は、列定義追加によって影響を受けるため、列を追加することはできません。

    • INSERT文の挿入列リストが省略されていて、挿入列の数が増加して実行できなくなるSQL手続き文

  • その他の構文要素の説明は、“3.22 CREATE TABLE文(表定義)”を参照してください。

列定義削除
  • 対象表に列が1つしかない場合は、指定することはできません。

  • 対象列を構成列に含むインデックス、その列を参照しているビュー表、プロシジャルーチン、トリガまたは一意性制約が存在している場合は削除できません。

注釈定義変更
  • 列名を指定した場合は、列の注釈を変更します。列名を指定していない場合は、表の注釈を変更します。

  • 注釈定義変更で、OFFを指定した場合、注釈は削除されます。

  • 注釈は256バイト以内の文字列(日本語記述可能)を指定することができます。

表名
  • 変更する表の名前を指定します。

列名
  • 変更する列の名前を指定します。

使用例

1

表T1に列C3を追加します。

ALTER TABLE S1.T1 ADD C3 SMALLINT

2

DEFAULT句を指定した列を追加します(NOT NULL制約を記述した新しい列C4を追加定義します)。

ALTER TABLE S1.T1 ADD C4 SMALLINT DEFAULT 1 NOT NULL

3

表T1から列C3を削除します。

ALTER TABLE S1.T1 DROP C3