ALTER TABLEを使って、UDT列に対して以下の操作を実行できます。
- テーブルへのUDT列の追加。
UDTが複数のLOB属性を持つSTRUCTURED型であっても、1つのLOB UDT列は1つのLOB列としてカウントされます。32個のLOB列の制限には、事前定義型のLOB列とLOB UDT列の両方が含まれます。
あらかじめUDTに順序付けとデータ変換の両方の機能を定義しておかないと、そのUDTの型の列をテーブル定義に追加できるようにはなりません。最初に順序付けとデータ変換の特性を定義しないで、そのような列をテーブル定義に追加しようとすると、システムはリクエスト側にエラーを返します。
列定義にUDT列を追加するたびに、テーブル ヘッダーの使用可能な領域が80バイトずつ少なくなります。1つのテーブルに定義可能なUDT列の総数は、同じくテーブル ヘッダーの領域を消費する他の機能(インデックス、圧縮など)の有無によって異なります。
テーブル ヘッダーの領域を占めるオプションの機能がほかに何もない場合、定義可能なUDT列の総数の上限は約1600です(fatテーブル ヘッダーの場合)。thinおよびfatテーブル ヘッダーと、各種のデータベース機能が占めるテーブル ヘッダーの領域については、<Teradata Vantage™ - データベースの設計、B035-1094>を参照してください。
- テーブルからのUDT列の削除。
- UDT列の属性の修正。UDT列の属性の以下のセットだけを修正できます。
- [NOT] NULL
- FORMAT
UDTの外部型でFORMAT文字列が有効でなければなりません(CREATE TRANSFORMおよびREPLACE TRANSFORMを参照)。
明示的に形式を指定しない場合、システムは外部データ型のデフォルトの表示形式を適用します。
- TITLE
- NAMED
- DEFAULT NULL
- UDT列で以下の属性を変更することはできません。
- CASESPECIFIC
- CHARACTER SET
- [CHECK] CONSTRAINT
- COMPRESS
- DATE
- DEFAULT numeric_value
- TIME
- UPPERCASE
- USER
- WITH DEFAULT
- テーブルを修正して、UDT列の参照に関する以下の制約のセットのいずれかを持つ列を作成することはできません。
- [CHECK] CONSTRAINT
- FOREIGN KEY … REFERENCES
- テーブルがパーティション化されている場合、そのパーティション式はUDT列を参照できません。