Oracle sql geliştiricisinde bir veritabanı kurmaya çalışıyorum, bu 3 tablolarım var. Tüm yabancı anahtarlar olan 3 birincil tuşa sahip olması için "GuyAddress" tablosuna ihtiyacım var. Kafamı alamadığım bir hatayı alıyorum.Oracle SQL Veritabanı hatası: "Bu sütun listesi için eşleşen benzersiz veya birincil anahtar yok"
CREATE TABLE Guy
(
id NUMBER(10) PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE Address
(
zipcode VARCHAR(6),
"number" NUMBER(10),
CONSTRAINT PK_Address PRIMARY KEY(zipcode, "number")
);
CREATE TABLE GuyAddress
(
Guy_id NUMBER(10),
Address_zipcode VARCHAR(6),
Address_number NUMBER(10),
CONSTRAINT FK_GuyAddress_Guy_id FOREIGN KEY(Guy_id) REFERENCES Guy(id),
CONSTRAINT FK_GuyAddress_Address_zipcode FOREIGN KEY(Address_zipcode) REFERENCES Address(zipcode),
CONSTRAINT FK_GuyAddress_Address_number FOREIGN KEY(Address_number) REFERENCES Address("number"),
CONSTRAINT PK_GuyAddress PRIMARY KEY(Guy_id, Address_zipcode, Address_number)
);
Bu hata, ben yapamam çünkü yapılan hatayı tespit edebilirsiniz umarım birileri ...
Error starting at line : 18 in command -
CREATE TABLE "GuyAddress"
(
Guy_id NUMBER(10),
Address_zipcode VARCHAR(6),
Address_number NUMBER(10),
CONSTRAINT FK_GuyAddress_Guy_id FOREIGN KEY(Guy_id) REFERENCES Guy(id),
CONSTRAINT FK_GuyAddress_Address_zipcode FOREIGN KEY(Address_zipcode) REFERENCES Address(zipcode),
CONSTRAINT FK_GuyAddress_Address_number FOREIGN KEY(Address_number) REFERENCES Address("number"),
CONSTRAINT PK_GuyAddress PRIMARY KEY(Guy_id, Address_zipcode, Address_number)
)
Error report -
SQL Error: ORA-02270: no matching unique or primary key for this column-list
02270. 00000 - "no matching unique or primary key for this column-list"
*Cause: A REFERENCES clause in a CREATE/ALTER TABLE statement
gives a column-list for which there is no matching unique or primary
key constraint in the referenced table.
*Action: Find the correct column names using the ALL_CONS_COLUMNS
catalog view
teşekkürler!
'CONSTRAINT PK_Address BİRİNCİL ANAHTAR (zipcode," number ")' bu birleşik birincil anahtardır ve 'CONSTRAINT'ı kullandığınız FK_GuyAddress_Address_zipcode FOREIGN KEY (Address_zipcode) REFERANSLAR Adres (zipcode),', nedeni olabilir. – ELITE
Oracle için (postanızın başlığına ve sorudaki hata mesajına göre) veya MySQL için mi? İkisini de etiketlediniz. – Boneist
Üzgünüz, etiketin "sql" olması gerekiyordu. – SJ19