DEFAULT関数を使用して行をテーブルに挿入する場合、以下のルールが適用されます。
- DEFAULT関数は、リレーション列を名前で識別する単一の引数を取ります。この関数は、列の現行デフォルト値に等しい値と評価されます。列のデフォルト値が現行の組み込みシステム関数として指定される場合、DEFAULT関数は、リクエストの実行時にシステム変数の現行値と評価されます。
この結果として、DEFAULT関数のデータ型は、デフォルトがヌルでない場合、デフォルトとして指定される定数またはビルトイン関数のデータ型になります。デフォルトがヌルの場合、DEFAULT関数のデータ型は、デフォルトのリクエスト対象である列または式のデータ型と同じになります。
- DEFAULT関数には 2 つの形式があります。DEFAULT関数はDEFAULTまたはDEFAULT (column_name)sとして指定することができます。列名が指定されていない場合、システムは、コンテキストに基づいて列を派生させます。列のコンテキストを派生させることができない場合、リクエストはアボートし、エラーが要求元に戻されます。
- 列名が指定されていないDEFAULT関数は式リストに指定できます。INSERTリクエストに列リストが指定されていると、DEFAULT関数の列名は、列リストの対応する列になります。リクエストに列リストがない場合、列名は、VALUESリストの位置から派生されます。
- INSERTリクエストに列名がないDEFAULT関数は、式の一部とすることはできません。これはスタンドアロンの要素として指定する必要があります。この使用形式は、ANSIに準拠しています。
- 列名が指定されているDEFAULT関数は式リストに指定できます。これは、ANSIに対するTeradataの拡張機能です。
- 列名が指定されているDEFAULT関数は式の任意の場所に指定できます。これは、Teradataの拡張機能です。
- 列にデフォルト値が明示的に関連付けられていない場合、DEFAULT関数はNULLと評価されます。
DEFAULT関数の詳細について、<Teradata Vantage™ SQL関数、式、および述部、B035-1145>を参照してください。