UPDATEのUpsert形式でDEFAULT関数を使用する場合、以下のルールが適用されます。
- DEFAULT関数は、リレーション列を名前で識別する単一の引数を取ります。この関数は、列の現行デフォルト値に等しい値と評価されます。列のデフォルト値が現行の組み込みシステム関数として指定される場合、DEFAULT関数は、リクエストの実行時にシステム変数の現行値と評価されます。
この結果として、DEFAULT関数のデータ型は、デフォルトがヌルでない場合、デフォルトとして指定される定数またはビルトイン関数のデータ型になります。デフォルトがヌルの場合、DEFAULT関数のデータ型は、デフォルトのリクエスト対象である列または式のデータ型と同じになります。
- DEFAULT関数には 2 つの形式があります。DEFAULT関数はDEFAULTまたはDEFAULT (column_name)sとして指定することができます。列名が指定されていない場合、システムは、コンテキストに基づいて列を派生させます。列のコンテキストを派生させることができない場合、リクエストはアボートし、エラーが要求元に戻されます。
- UPDATEでのDEFAULT関数の使用上のルールにリストされているすべてのルールもUPDATE文のUpsert形式の更新に適用されます。
- DEFAULT関数オプションまたはDEFAULT VALUESオプションを使用した、または値を指定しない挿入にリストされているすべてのルールもUPDATE文のUpsert形式の挿入に適用されます。
DEFAULT関数の詳細について、<Teradata Vantage™ SQL関数、式、および述部、B035-1145>を参照してください。