Foreign keys

Started by Jacob Vennervald Madsenalmost 24 years ago3 messagesgeneral
Jump to latest
#1Jacob Vennervald Madsen
jvm@gopinocchio.com

Hi All

I'm having a problem with Postgresql v. 7.2.
When I create a table and add a foreign key as a table constraint I get
a parse error, but when I add it as a column constraint it works.
This is what I've tried:

CREATE TABLE "alarm_schedule" (
"alarm_schedule_id" SERIAL NOT NULL,
"day_of_week" int2 NOT NULL,
"user_id" int4 NOT NULL,
"send_email" bool NOT NULL,
"send_sms" bool NOT NULL,
PRIMARY KEY ("alarm_schedule_id"),
FOREIGN KEY "user_id" REFERENCES smartlight_user ("user_id")
);

I get this error:
2002-04-22 13:04:53 [21193] ERROR: parser: parse error at or near """
ERROR: parser: parse error at or near """

But when I do this:

CREATE TABLE "alarm_schedule" (
"alarm_schedule_id" SERIAL NOT NULL,
"day_of_week" int2 NOT NULL,
"user_id" int4 NOT NULL REFERENCES smartlight_user ("user_id"),
"send_email" bool NOT NULL,
"send_sms" bool NOT NULL,
PRIMARY KEY ("alarm_schedule_id")
);

It works.

Any ideas?

Note: If you receive this twice it's because I sent it to
pgsql-general@postgres.org first.
But it's been hours since I sent it so I figured I'd try
pgsql-general@postgresql.org instaed.

Best regards,
Jacob Vennervald Madsen
Systems Developer

GoPinocchio
Norrebrogade 45
DK-2200 Copenhagen
www.gopinocchio.com
+45 26750106

**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.

#2Devrim GUNDUZ
devrim@oper.metu.edu.tr
In reply to: Jacob Vennervald Madsen (#1)
Re: Foreign keys

Hi,

On Mon, 22 Apr 2002, Jacob Vennervald Madsen wrote:

CREATE TABLE "alarm_schedule" (
"alarm_schedule_id" SERIAL NOT NULL,
"day_of_week" int2 NOT NULL,
"user_id" int4 NOT NULL,
"send_email" bool NOT NULL,
"send_sms" bool NOT NULL,
PRIMARY KEY ("alarm_schedule_id"),
FOREIGN KEY "user_id" REFERENCES smartlight_user ("user_id")
);

This works:

CREATE TABLE "alarm_schedule" (
"alarm_schedule_id" SERIAL NOT NULL,
"day_of_week" int2 NOT NULL,
"user_id" int4 NOT NULL,
"send_email" bool NOT NULL,
"send_sms" bool NOT NULL,
PRIMARY KEY ("alarm_schedule_id"),
FOREIGN KEY ("user_id") REFERENCES smartlight_user(user_id)
);

Just a parenthesis ;)

Best regards.

--

Devrim GUNDUZ

devrim@oper.metu.edu.tr
devrim.gunduz@linux.org.tr
devrimg@tr.net

Web : http://devrim.oper.metu.edu.tr
------------------------------------------------------------------

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Devrim GUNDUZ (#2)
Re: Foreign keys

Devrim GUNDUZ <devrim@oper.metu.edu.tr> writes:

Just a parenthesis ;)

Hmm, I wonder why the parse error message is so unhelpful? If I write
the same example without double-quoting user_id, I get

ERROR: parser: parse error at or near "user_id"

which might at least offer a clue.

regards, tom lane