dbTalk Databases Forums  

Issue adding foreign key

comp.databases.postgresql.general comp.databases.postgresql.general


Discuss Issue adding foreign key in the comp.databases.postgresql.general forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
George Woodring
 
Posts: n/a

Default Issue adding foreign key - 10-28-2004 , 03:14 PM






I have 2 existing tables in my db:

iss=> \d pollgrpinfo
Table "public.pollgrpinfo"
Column | Type | Modifiers
---------------+------------------------+-----------
pollgrpinfoid | integer | not null
pollgrpid | integer | not null
name | character varying(100) |
descript | character varying(200) |
Indexes:
"pollgrpinfo_pkey" primary key, btree (pollgrpinfoid)
"pollgrpinfo_pollgrpid_key" unique, btree (pollgrpid)

iss=> \d notpoll
Table "public.notpoll"
Column | Type | Modifiers
-------------+------------------------+---------------------
notpollid | integer | not null
pollgrpid | integer |
notgroupsid | integer |
alerting | character(1) | default 'y'::bpchar
disuser | character varying(50) |
distime | integer |
alertingcom | character varying(200) |
Indexes:
"notpoll_pkey" primary key, btree (notpollid)
"notpoll_pollgrpid_key" unique, btree (pollgrpid)
"notpoll_alerting_index" btree (alerting)
Triggers:
"RI_ConstraintTrigger_2110326" AFTER INSERT OR UPDATE ON notpoll
FROM notgroups NOT DEFERRABLE INITIALLY IMMEDIATE FOR EACH ROW EXECUTE
PROCEDURE "RI_FKey_check_ins"('notgroups_exists', 'notpoll',
'notgroups', 'UNSPECIFIED', 'notgroupsid', 'notgroupsid')

I am trying to add a foreign key to the notpoll table

iss=> alter table notpoll add constraint pollgrp_exists foreign
key(pollgrpid) references pollgrpinfo on delete cascade;
ERROR: insert or update on table "notpoll" violates foreign key
constraint "pollgrp_exists"
DETAIL: Key (pollgrpid)=(7685) is not present in table "pollgrpinfo".

I have verified that the information is in the pollgrpinfo table:

iss=> select * from pollgrpinfo where pollgrpid=7685;
pollgrpinfoid | pollgrpid | name | descript
---------------+-----------+------+----------
767 | 7685 | HTTP |
(1 row)


I could use a suggestion on how to proceed in troubleshooting the error
message. I am running 7.4.5

Thanks,
Woody

----------------------------------------
iGLASS Networks
211-A S. Salem St
Apex NC 27502
(919) 387-3550 x813
www.iglass.net

---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match


Reply With Quote
  #2  
Old   
Edmund Bacon
 
Posts: n/a

Default Re: Issue adding foreign key - 10-28-2004 , 03:59 PM






george.woodring (AT) iglass (DOT) net ("George Woodring") writes:

Quote:
I have 2 existing tables in my db:

iss=> \d pollgrpinfo
Table "public.pollgrpinfo"
Column | Type | Modifiers
---------------+------------------------+-----------
pollgrpinfoid | integer | not null
pollgrpid | integer | not null
name | character varying(100) |
descript | character varying(200) |
Indexes:
"pollgrpinfo_pkey" primary key, btree (pollgrpinfoid)
"pollgrpinfo_pollgrpid_key" unique, btree (pollgrpid)

iss=> \d notpoll
Table "public.notpoll"
Column | Type | Modifiers
-------------+------------------------+---------------------
notpollid | integer | not null
pollgrpid | integer |
notgroupsid | integer |
alerting | character(1) | default 'y'::bpchar
disuser | character varying(50) |
distime | integer |
alertingcom | character varying(200) |
Indexes:
"notpoll_pkey" primary key, btree (notpollid)
"notpoll_pollgrpid_key" unique, btree (pollgrpid)
"notpoll_alerting_index" btree (alerting)
Triggers:
"RI_ConstraintTrigger_2110326" AFTER INSERT OR UPDATE ON notpoll
FROM notgroups NOT DEFERRABLE INITIALLY IMMEDIATE FOR EACH ROW EXECUTE
PROCEDURE "RI_FKey_check_ins"('notgroups_exists', 'notpoll',
'notgroups', 'UNSPECIFIED', 'notgroupsid', 'notgroupsid')

I am trying to add a foreign key to the notpoll table

iss=> alter table notpoll add constraint pollgrp_exists foreign
key(pollgrpid) references pollgrpinfo on delete cascade;
ERROR: insert or update on table "notpoll" violates foreign key
constraint "pollgrp_exists"
DETAIL: Key (pollgrpid)=(7685) is not present in table "pollgrpinfo".

When expressed as "FOREIGN KEY (foo) REFERENCES mytable" postgresql
assumes that foo references the PRIMARY KEY for table mytable. If you
are not referencing the primary key, you need to tell postgresql which
column e.g. FOREIGN KEY (foo) REFERNCES mytable(foo).


--
Remove -42 for email


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.