You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

[ |../../index.htm#lansa/insert_c.htm]
現在地:

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

[ |../../index.htm#lansa/insert_c.htm]

  • No labels