0

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

添加记录时出错:FOREIGN KEY 约束失败:(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);
    
4

1 回答 1

2

您已经在表中定义了这些外键Stock

FOREIGN KEY(PurchaseID) REFERENCES Purchase(PurchaseID),
FOREIGN KEY(OrderNumber) REFERENCES Orders(OrderNumber),
FOREIGN KEY(SupplierReference) REFERENCES Supplier(SupplierReference)

这意味着列中的值PurchaseID,,需要引用表中列中的值OrderNumber,并且。 但是您想将 0 存储到所有这些列中,我确信这不是任何引用列的值,因为这些引用列被定义为SupplierReferencePurchaseOrdersSupplier

PRIMARY KEY AUTOINCREMENT

所以他们的价值观是> 0
传递这 3 个表中确实存在的有效值,该语句将成功执行。

于 2019-03-08T17:51:05.007 回答