Saat ini saya mendapatkan kesalahan berikut ketika mencoba menambahkan ke salah satu tabel saya:

Kesalahan saat menambahkan catatan: kendala KUNCI ASING gagal: (MASUKKAN KE Stock(StockID,ItemName,MinAmountRequired,AmountInStock,Pesan? (Ya/Tidak),DataLastUpdated,NomorPesanan,Referensi Pemasok,ID Pembelian`) NILAI (1,",0,0,",,",0,0,0);)

Saat ini, Beginilah cara saya mengatur tabel saya:

  1. persediaan

    BUAT TABEL Stok ( StockID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIK, Nama Item TEKS BUKAN NULL, MinAmountRequired INTEGER NOT NULL, JumlahInStock INTEGER BUKAN NULL, Memesan? (Ya/Tidak) TEKS TIDAK NULL, DataLastUpdated TEXT BUKAN NULL, OrderNumber INTEGER BUKAN NULL UNIK, PemasokReferensi INTEGER BUKAN NULL, PurchaseID INTEGER BUKAN NULL UNIK, REFERENSI KUNCI ASING (ID Pembelian) Pembelian (ID Pembelian), KUNCI ASING(NomorPesanan) REFERENSI Pesanan(NomorPesanan), FOREIGN KEY(SupplierReference) REFERENSI Pemasok(SupplierReference));

  2. Pesanan

    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. Pemasok

    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. Pembelian

    CREATE TABLE Purchase (
      PurchaseID    INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
      Date  TEXT NOT NULL,
      AmountSpent   REAL NOT NULL);
    
0
Sonny P. 8 Maret 2019, 20:27

1 menjawab

Jawaban Terbaik

Anda telah mendefinisikan kunci asing ini dalam tabel Stock:

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

Artinya nilai dalam kolom PurchaseID, OrderNumber, SupplierReference perlu mengacu pada nilai dalam kolom tabel Purchase, Orders dan Supplier.
Tetapi Anda ingin menyimpan 0 ke semua kolom ini yang saya yakin bukan nilai dari kolom yang direferensikan, karena kolom yang direferensikan ini didefinisikan sebagai

PRIMARY KEY AUTOINCREMENT

Jadi nilainya adalah > 0.
Lewati nilai valid yang ada di 3 tabel ini dan pernyataan akan berhasil dijalankan.

2
forpas 8 Maret 2019, 17:51