Thread: Foreign key creation error

Foreign key creation error

From
Miha Radej
Date:
Hi!

I've tried creating in pgAdmin3. The generated SQL output was

CREATE TABLE public."KOMENTARJI"
(   "idKomentarja" bigserial NOT NULL,   "idRecepta" int8 NOT NULL,   "idUporabnika" int8 NOT NULL,   "Komentar" text
NOTNULL,   "DatumVnosa" text NOT NULL,   "IPVnosa" text NOT NULL,   CONSTRAINT "fkey_KOMENTAR_RECEPT" FOREIGN KEY
(idRecepta)REFERENCES 
 
"RECEPTI" (idRecepta)    ON UPDATE RESTRICT ON DELETE RESTRICT,   CONSTRAINT "fkey_KOMENTAR_UPORABNIK" FOREIGN KEY
(idUporabnika)
 
REFERENCES "UPORABNIKI" (idUporabnika)    ON UPDATE RESTRICT ON DELETE 
RESTRICT,   CONSTRAINT "pkey_KOMENTARJI" PRIMARY KEY ("idKomentarja")
) WITHOUT OIDS;

When hitting OK pgAdmin reported an error. I tried manually entering this 
query by adding quotes to column names in the foreign key constraints:

CREATE TABLE public."KOMENTARJI"
(   "idKomentarja" bigserial NOT NULL,   "idRecepta" int8 NOT NULL,   "idUporabnika" int8 NOT NULL,   "Komentar" text
NOTNULL,   "DatumVnosa" text NOT NULL,   "IPVnosa" text NOT NULL,   CONSTRAINT "fkey_KOMENTAR_RECEPT" FOREIGN KEY
("idRecepta")REFERENCES 
 
"RECEPTI" ("idRecepta")    ON UPDATE RESTRICT ON DELETE RESTRICT,   CONSTRAINT "fkey_KOMENTAR_UPORABNIK" FOREIGN KEY
("idUporabnika")
 
REFERENCES "UPORABNIKI" ("idUporabnika")    ON UPDATE RESTRICT ON DELETE 
RESTRICT,   CONSTRAINT "pkey_KOMENTARJI" PRIMARY KEY ("idKomentarja")
) WITHOUT OIDS;

and the query was accepted, the table and everything created.

Did I do something wrong when creating the table and foreign keys? Or is 
there some other reason that the column names in foreign keys weren't 
wrapped with double quotes?

I am running Windows 2000, sp3, and I just today downloaded pgAdmin3 (win32 
binary). I've been using English language.

Other than that it seems to be working great!


--
Regards,
Miha 




Re: Foreign key creation error

From
Andreas Pflug
Date:
Miha Radej wrote:

> Hi!
>
> I've tried creating in pgAdmin3. The generated SQL output was
>
> CREATE TABLE public."KOMENTARJI"
> (
>    "idKomentarja" bigserial NOT NULL,
>    "idRecepta" int8 NOT NULL,
>    "idUporabnika" int8 NOT NULL,
>    "Komentar" text NOT NULL,
>    "DatumVnosa" text NOT NULL,
>    "IPVnosa" text NOT NULL,
>    CONSTRAINT "fkey_KOMENTAR_RECEPT" FOREIGN KEY (idRecepta) 
> REFERENCES "RECEPTI" (idRecepta)    ON UPDATE RESTRICT ON DELETE 
> RESTRICT,
>    CONSTRAINT "fkey_KOMENTAR_UPORABNIK" FOREIGN KEY (idUporabnika) 
> REFERENCES "UPORABNIKI" (idUporabnika)    ON UPDATE RESTRICT ON DELETE 
> RESTRICT,
>    CONSTRAINT "pkey_KOMENTARJI" PRIMARY KEY ("idKomentarja")
> ) WITHOUT OIDS;
>
> When hitting OK pgAdmin reported an error. I tried manually entering 
> this query by adding quotes to column names in the foreign key 
> constraints:
>
> CREATE TABLE public."KOMENTARJI"
> (
>    "idKomentarja" bigserial NOT NULL,
>    "idRecepta" int8 NOT NULL,
>    "idUporabnika" int8 NOT NULL,
>    "Komentar" text NOT NULL,
>    "DatumVnosa" text NOT NULL,
>    "IPVnosa" text NOT NULL,
>    CONSTRAINT "fkey_KOMENTAR_RECEPT" FOREIGN KEY ("idRecepta") 
> REFERENCES "RECEPTI" ("idRecepta")    ON UPDATE RESTRICT ON DELETE 
> RESTRICT,
>    CONSTRAINT "fkey_KOMENTAR_UPORABNIK" FOREIGN KEY ("idUporabnika") 
> REFERENCES "UPORABNIKI" ("idUporabnika")    ON UPDATE RESTRICT ON 
> DELETE RESTRICT,
>    CONSTRAINT "pkey_KOMENTARJI" PRIMARY KEY ("idKomentarja")
> ) WITHOUT OIDS;
>
> and the query was accepted, the table and everything created.
>
> Did I do something wrong when creating the table and foreign keys? Or 
> is there some other reason that the column names in foreign keys 
> weren't wrapped with double quotes? 


Thanks Miha,
quoting missed, patched in CVS. There might be other places where quotes 
are missing, please don't hesitate to claim all of them.

Regards,
Andreas