उदाहरण तालिका संरचना के नीचे एक त्रुटि देता है: संदर्भित तालिका के लिए दी गई कोई अद्वितीय बाधा मिलान कुंजी नहीं है, और इसके लिए घूरते हुए अब मैं यह पता नहीं लगा सकता कि इस स्थिति में यह त्रुटि क्यों उत्पन्न होती है।
BEGIN;
CREATE TABLE foo (
name VARCHAR(256) PRIMARY KEY
);
CREATE TABLE bar(
pkey SERIAL PRIMARY KEY,
foo_fk VARCHAR(256) NOT NULL REFERENCES foo(name),
name VARCHAR(256) NOT NULL,
UNIQUE (foo_fk,name)
);
CREATE TABLE baz(
pkey SERIAL PRIMARY KEY,
bar_fk VARCHAR(256) NOT NULL REFERENCES bar(name),
name VARCHAR(256)
);
COMMIT;
उपरोक्त कोड चलाने से निम्नलिखित त्रुटि होती है, जो मुझे समझ में नहीं आती है, क्या कोई समझा सकता है कि यह त्रुटि क्यों उत्पन्न होती है। मैं 9.1 पोस्टग्रेज का उपयोग कर रहा हूं
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "foo_pkey" for table "foo"
NOTICE: CREATE TABLE will create implicit sequence "bar_pkey_seq" for serial column "bar.pkey"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "bar_pkey" for table "bar"
NOTICE: CREATE TABLE / UNIQUE will create implicit index "bar_foo_fk_name_key" for table "bar"
NOTICE: CREATE TABLE will create implicit sequence "baz_pkey_seq" for serial column "baz.pkey"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "baz_pkey" for table "baz"
ERROR: there is no unique constraint matching given keys for referenced table "bar"
********** Error **********
ERROR: there is no unique constraint matching given keys for referenced table "bar"
SQL state: 42830