テーブルに列を追加する操作に関するルールと制約事項を以下にまとめます。
- 1つのALTER TABLEリクエストで列を複数回変更することはできません。
- すでにデータを含んでいる実テーブルに列を追加する場合、システムは、新しい列用のフィールドを追加するために通常はそのテーブルの各行にアクセスする必要があります。すでに行を含む実テーブルに列を追加する場合には、次の原則が適用されます。
句 場合 すべての行の初期値 DEFAULT 新しい列に指定した場合 すべての行のそのフィールドに、指定された定数値が初期値として含まれます。 WITH DEFAULT すべての行のそのフィールドに、システムのデフォルト値が初期値として含まれます。 DEFAULT WITH DEFAULT
新しい列に指定ない場合 その列の行の初期値はすべてnullになります。NOT NULL句を指定することはできません。 - DEFAULT句またはWITH DEFAULT句を指定しないでNOT NULLを指定した列は、空のテーブルにだけ追加できます。
- インデックス列のデータ型、NULL受入可能、または名前は変更できません。
- パーティション テーブルのパーティション列のデータ型、NULL受入可能、または名前は変更できません。
- 識別列を既存の実テーブルに追加したり、識別列の属性だけを既存の列に追加することはできません。
- 1つの基本テーブルにつき最大で32のBLOB列とCLOB列を追加できます。ラージ オブジェクト データ型に関するルールと制約事項を参照してください。
- サーバー文字セットKANJI1のCHARACTER列、VARCHAR列、CLOB列をテーブルに追加することはできません。そうしないと、システムはリクエスト側にエラーを返します。