DEFAULT関数オプションまたはDEFAULT VALUESオプションを使用した、または値を指定しない挿入 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/vnq1596660420420.ditamap
dita:ditavalPath
ja-JP/vnq1596660420420.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage

DEFAULT関数オプション

DEFAULT関数を使用すると、VALUES式リスト内の位置に基づいて、デフォルト値を返し、挿入することができます。また、明示的な列名がDEFAULT関数とともに指定されている場合は、名前に基づくことができます。

DEFAULT VALUESオプション

次のテーブルで定義されるすべての列を持つテーブルの場合、DEFAULT VALUESキーワードで定義されたINSERTが、定義されたデフォルト値(指示される位置)、識別列の識別値、および別の列(定義されている場合)のnullから構成される行を追加します。

NULL受入れ可能? デフォルトは定義されるか?
はい いいえ
はい はい
いいえ はい

上のINSERTは、テーブル定義によって強制された条件を満たす場合に発生します。そうでない場合は、エラーが返されます。

埋め込みSQLは、INSERTのDEFAULT VALUESオプションもサポートしています。

識別列を持つテーブルにINSERTを行なう場合、識別列がGENERATED ALWAYSとして定義されていてもGENERATED BY DEFAULTとして定義されていても、システムは常にその識別列の番号を生成します。

次の例では、table_1に識別列がある場合、システムは常にその値を生成します。

     INSERT table_1 DEFAULT VALUES;

テーブルの非識別列がNOT NULLとして定義され、DEFAULTが定義されていない場合、エラーが返される(ANSIセッション モード)か、トランザクションがアボートします(Teradataセッション モード)。

それ以外の場合、あるテーブルの行が有効で、既存の行と重複し、そのテーブルが重複行を受け入れないように定義されている場合、エラーが返される(ANSIセッション モード)か、トランザクションがアボートします(Teradataセッション モード)。

値を指定せずに列に挿入する

新しい行の各列に値を指定しない場合、次のルールが適用されます。
  • 列にNOT NULLの指定がなく、デフォルト値の指定がない場合は、null値が挿入されます。
  • 列がNOT NULLとして宣言され、デフォルト値が宣言されない場合、エラーが返される(ANSIセッション モード)か、トランザクションがアボートします(Teradataセッション モード)。