7.60.2 INSERTについてのコメント/警告
· 新しいレコードに対してフィールドが指定されていない場合、データ・ディクショナリで定義されているデフォルト値が適用されます。例えば、ファイルNAMES内のレコードにフィールド#CUSTNO (顧客番号)、#NAME (顧客名)、#ADD1 (住所1)、および#POSTCD (郵便番号)が含まれている場合に、以下のコマンドを実行します。
INSERT FIELDS(#CUSTNO #NAME) TO_FILE(NAMES)
これにより、新しいレコードでは、#ADD1がブランクに設定され、#POSTCDが2000に設定されます(データ・ディクショナリで各フィールドに対してこれらのデフォルト値が定義されている場合)。
· BLOBまたはCLOBデータを挿入すると、*SQLNULL、*NULL、またはファイル名になることに注意してください。ファイル名の場合、ファイルが存在し、その内容がデータベース内のBLOBまたはCLOBにコピーされるものと見なされます。
· INSERT操作では、少なくともファイルの「プライマリ・キー・フィールド」を指定する必要があります。プライマリ・キー・フィールドは、ファイルの設定時に指定します。プライマリ・キー・フィールドが指定されていない場合、INSERT操作は、「情報不足」エラーにより失敗します。
例えば、ファイルNAMESのプライマリ・キーが#CUSTNOの場合、以下の操作は失敗します。
INSERT FIELDS(#NAME #ADD1) TO_FILE(NAMES)
INSERT FIELDS(#POSTCD) TO_FILE(NAMES)
· SQL Nullフィールドをテーブルのデータベース列に挿入すると、以下のいずれかが起こります。
· (LANSAではなくDBMS内で)列にデフォルト値または自動生成値が定義されている場合、SQL Nullではなくデフォルト値が挿入されます。
· 列にNOT NULL制約が適用されていない場合、列はSQL Nullに設定されます。
· 列にNOT NULL制約が適用されている場合、その挿入は失敗します(列のデータベース定義がフィールドのLANSA定義と一致していない場合のみ失敗します)。