X-Original-To: pgsql-sql-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id 9996AD1B491 for ; Tue, 8 Jun 2004 18:51:48 -0300 (ADT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 11437-04 for ; Tue, 8 Jun 2004 21:51:47 +0000 (GMT) Received: from mail.ursa-minor.com (ns1.ursa-minor.com [66.152.196.34]) by svr1.postgresql.org (Postfix) with ESMTP id C4146D1B459 for ; Tue, 8 Jun 2004 18:51:43 -0300 (ADT) Received: from [66.152.196.53] (unknown [66.152.196.53]) by mail.ursa-minor.com (Postfix) with ESMTP id 833E267862 for ; Tue, 8 Jun 2004 16:51:21 -0500 (EST) Mime-Version: 1.0 X-Sender: (Unverified) Message-Id: Date: Tue, 8 Jun 2004 17:51:22 -0400 To: pgsql-sql@postgresql.org From: Michelle Murrain Subject: simple addition of constraints problem Content-Type: text/plain; charset="us-ascii" ; format="flowed" X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.0 tagged_above=0.0 required=5.0 tests= X-Spam-Level: X-Archive-Number: 200406/61 X-Sequence-Number: 18006 Hi All, I'm trying to do something which seems really simple to me. (Postgres 7.3.4) I've got this table: charter_dev2=# \d rcourseinfo Table "public.rcourseinfo" Column | Type | Modifiers -------------+-----------------------+--------------------------------------------------- courseid | integer | not null default nextval('rcourseinfo_seq'::text) coursename | character varying(50) | dept | character varying(30) | number | character varying(4) | section | character varying(2) | trimester | character varying(5) | schoolyear | character varying(8) | facultyid | integer | description | text | credits | real | Indexes: rcourseinfo_pkey primary key btree (courseid), rcourseinfo_number_index btree (number) With a primary key called 'courseid'. I've got a second table: charter_dev2=# \d coursesevaluations Table "public.coursesevaluations" Column | Type | Modifiers -----------------------+---------+---------------------------------------------------------- courseid | integer | evalid | integer | coursesevaluations_id | integer | not null default nextval('coursesevaluations_seq'::text) Indexes: coursesevaluations_pkey primary key btree (coursesevaluations_id), coursesevaluations_evalid_index btree (evalid) I'd like to make 'courseid' in this second table a foreign key, referencing 'courseid' in the first table. So I did this command: charter_dev2=# ALTER TABLE coursesevaluations ADD CONSTRAINT rc_ce FOREIGN KEY (courseid) REFERENCES rcourseinfo (courseid); And I get this result: NOTICE: ALTER TABLE will create implicit trigger(s) for FOREIGN KEY check(s) ERROR: rc_ce referential integrity violation - key referenced from coursesevaluations not found in rcourseinfo This doesn't make any sense to me - the fields are named the same, and are the same data type. I've pored over the docs, to no avail. I'm sure I'm missing something really elementary, but it's escaping me. I did try the following (because the error said "key referenced"): ALTER TABLE coursesevaluations ADD CONSTRAINT rc_ce FOREIGN KEY (courseid) REFERENCES rcourseinfo (rcourseinfo_pkey); I got the error : ERROR: ALTER TABLE: column "rcourseinfo_pkey" referenced in foreign key constraint does not exist !! Thanks for any advice. -- .Michelle -------------------------- Michelle Murrain mmurrain at dbdes dot com 413-222-6350 ph 617-889-0929 ph 952-674-7253 fax <--- new Page: pageme@murrain.net AIM:pearlbear0 ICQ:129250575 Y!: michelle_murrain Jabber: pearlbear@transactim.net "Work like you don't need the money. Love like you've never been hurt. Dance like nobody's watching." - Satchel Paige