7.60.2 INSERTについてのコメント/警告

LANSA

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定義と一致していない場合のみ失敗します)。