Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

...