SQL 关于外键约束的错误

SQL Error Regarding Foreign Key Restraint

我目前在尝试添加到我的一个表时遇到以下错误:

Error adding record: FOREIGN KEY constraint failed: (INSERT INTO Stock(StockID,ItemName,MinAmountRequired,AmountInStock,Order? (Yes/No),DataLastUpdated,OrderNumber,SupplierRefrence,PurchaseID`) VALUES (1,",0,0,",",0,0,0);)

目前,这是我设置表格的方式:

  1. 股票

    CREATE TABLE Stock ( StockID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, ItemName TEXT NOT NULL, MinAmountRequired INTEGER NOT NULL, AmountInStock INTEGER NOT NULL, Order? (Yes/No) TEXT NOT NULL, DataLastUpdated TEXT NOT NULL, OrderNumber INTEGER NOT NULL UNIQUE, SupplierReference INTEGER NOT NULL, PurchaseID INTEGER NOT NULL UNIQUE, FOREIGN KEY(PurchaseID) REFERENCES Purchase(PurchaseID), FOREIGN KEY(OrderNumber) REFERENCES Orders(OrderNumber), FOREIGN KEY(SupplierReference) REFERENCES Supplier(SupplierReference));

  2. 订单

    CREATE TABLE Orders (
      OrderNumber   INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
      CustomerReferenceNumber   INTEGER NOT NULL UNIQUE,
      OrderDate TEXT NOT NULL,
      ItemName  TEXT NOT NULL UNIQUE);
    
  3. 供应商

    CREATE TABLE Supplier (
      SupplierReference INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
      Name  TEXT NOT NULL UNIQUE,
      Address   TEXT NOT NULL UNIQUE,
      ContactNumber INTEGER NOT NULL UNIQUE);
    
  4. 购买

    CREATE TABLE Purchase (
      PurchaseID    INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
      Date  TEXT NOT NULL,
      AmountSpent   REAL NOT NULL);
    

您已在 table Stock:

中定义了这些外键
FOREIGN KEY(PurchaseID) REFERENCES Purchase(PurchaseID),
FOREIGN KEY(OrderNumber) REFERENCES Orders(OrderNumber),
FOREIGN KEY(SupplierReference) REFERENCES Supplier(SupplierReference)

表示 PurchaseIDOrderNumberSupplierReference 列中的值需要引用 table 列中的值 PurchaseOrdersSupplier.
但是您想将 0 存储到所有这些列中,我确定这不是任何引用列的值,因为这些引用列被定义为

PRIMARY KEY AUTOINCREMENT

因此它们的值为 > 0
传递这 3 table 中确实存在的有效值,语句将成功执行。