1

テーブルに複合主キー (C1+C2+C3) があります。DDLはこちら

    CREATE TABLE "InputFiles" (
  [PlantID] INTEGER, 
  [FileID] INTEGER, 
  [VesselDataCase] CHAR(9), 
  [Comments] CHAR(73),  
Primary key([PlantID], [FileID]),
  FOREIGN KEY(PlantId) REFERENCES Plant(PlantId) ON DELETE CASCADE);

CREATE TABLE [VesselData] (
[MaterialType] NVARCHAR(100) NOT NULL,
[Operating_Temperature] NUMERIC, 
  [IRTndt] numeric, 
  [VDID] integer, 
  [PlantId] integer, 
  [FileId] integer,
FOREIGN KEY([plantid], [fileid]) REFERENCES [inputfiles]([plantid], [fileid]) ON DELETE cascade, 
  CONSTRAINT [sqlite_autoindex_VesselData_1] PRIMARY KEY ([VDID], [PlantId], [FileId])); 

When I try to insert a new row in VesselData Table

VDID = 1、Fileid = 2、Plantid = 3 とすると、(1+2+3) の組み合わせを探します。これらの値を持つフィールドがテーブルに存在しない場合でも、制約違反が原因で中止されます列 VDID、PlantId、FileId は一意の SQlite 例外ではありません

ただし、テーブルにフィールドを挿入しています。このフィールドを挿入すると、この例外が発生します。無効なフィールド値が原因で、挿入または中止すべきではありません

ありがとうサン

4

0 に答える 0