Saya yang baru di postgreSQL. Saya punya 3 tabel, satu tabel referensi kunci utama 2 tabel lainnya. Tapi saya tidak bisa memasukkan data ke dalam Table3
. Lihat kode di bawah ini:
DROP TABLE Table1 CASCADE;
CREATE TABLE Table1(
"DataID" bigint NOT NULL DEFAULT '0',
"AdData" integer DEFAULT NULL,
PRIMARY KEY ("DataID")
);
DROP TABLE IF EXISTS Table2 CASCADE;
CREATE TABLE Table2 (
"Address" numeric(20) NOT NULL DEFAULT '0',
"Value" numeric(20) DEFAULT NULL,
PRIMARY KEY ("Address")
);
DROP TABLE IF EXISTS Table3 CASCADE;
CREATE TABLE table3 (
"ID" bigint NOT NULL DEFAULT '0',
"DataID" bigint DEFAULT NULL,
"Address" numeric(20) DEFAULT NULL,
"Data" bigint DEFAULT NULL,
PRIMARY KEY ("ID"),
FOREIGN KEY ("DataID") REFERENCES Table1("DataID") on delete cascade on update cascade,
FOREIGN KEY ("Address") REFERENCES Table2("Address") on delete cascade on update cascade
);
GALAT: menyisipkan atau memperbarui pada tabel "Table3" melanggar batasan kunci asing "Table3_DataID_fkey" DETAIL: Key (DataID) = (27856) tidak ada dalam tabel "Table1".
Ketika saya mencoba memasukkan data ke dalam 3 tabel, terjadi kesalahan. Saya merujuk dokumentasi postgreSQL dan mengubah kode saya sebagai berikut: (Sayangnya itu menunjukkan kesalahan lain)
DROP TABLE Table1 CASCADE;
CREATE TABLE Table1(
"DataID" bigint NOT NULL DEFAULT '0',
"AdData" integer DEFAULT NULL,
PRIMARY KEY ("DataID")
);
DROP TABLE IF EXISTS Table2 CASCADE;
CREATE TABLE Table2 (
"Address" numeric(20) NOT NULL DEFAULT '0',
"Value" numeric(20) DEFAULT NULL,
PRIMARY KEY ("Address")
);
DROP TABLE IF EXISTS Table3 CASCADE;
CREATE TABLE table3 (
"ID" bigint NOT NULL DEFAULT '0',
"DataID" bigint DEFAULT NULL REFERENCES Table1 ON DELETE RESTRICT,
"Address" numeric(20) DEFAULT NULL REFERENCES Table2 ON DELETE CASCADE,
"Data" bigint DEFAULT NULL,
PRIMARY KEY ("ID"),
PRIMARY KEY("DataID", "Address")
);
GALAT: beberapa kunci utama untuk tabel "Table3" tidak diperbolehkan LINE 65: KUNCI UTAMA ("DataID", "Address")
Tolong bantu saya ... Bagaimana saya bisa membuat referensi?
Saya mengubah ID
as UNIQUE
dan menghapus garis PRIMARY KEY ("ID")
. Pada saat itu ia menunjukkan kesalahan lain seperti:
GALAT: nilai kunci duplikat melanggar batasan unik "Table3_pkey"