From: | Ron <ronljohnsonjr(at)gmail(dot)com> |
---|---|
To: | "pgsql-generallists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org> |
Subject: | ADD FOREIGN KEY fails, but the records exist |
Date: | 2021-02-15 16:12:30 |
Message-ID: | e8a458ad-2f92-6f8d-c485-8f72e3d4f72a@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Postgresql 12.5
It's a self-referential FK on a single (but partitioned) table. The ALTER
TABLE command fails, but I queried it, and the record that it fails on
exists. I modified the original INITIALLY IMMEDIATE clause to INITIALLY
DEFERRED but that did not help.
What am I doing wrong?
(We're migrating from Oracle to PostgreSQL, and this is working in Oracle.)
sides=> ALTER TABLE employer_response
ADD CONSTRAINT amended_response_fk FOREIGN KEY (amended_response_id,
part_date)
REFERENCES employer_response(employer_response_id, part_date)
ON DELETE NO ACTION DEFERRABLE INITIALLY DEFERRED ;
ERROR: insert or update on table "employer_response_p2021_01" violates
foreign key constraint "amended_response_fk"
DETAIL: Key (amended_response_id, part_date)=(103309154, 2021-01-06
00:00:00) is not present in table "employer_response".
sides=>
sides=> select employer_response_id, part_date
sides-> from strans.employer_response
sides-> where amended_response_id = 103309154;
employer_response_id | part_date
----------------------+---------------------
103309156 | 2021-01-06 00:00:00
(1 row)
sides=> select employer_response_id, part_date
from strans.employer_response_p2021_01
where amended_response_id = 103309154;
employer_response_id | part_date
----------------------+---------------------
103309156 | 2021-01-06 00:00:00
(1 row)
--
Angular momentum makes the world go 'round.
From | Date | Subject | |
---|---|---|---|
Next Message | Laurenz Albe | 2021-02-15 16:15:41 | Re: MultiXactMemberControlLock contention on a replica |
Previous Message | Christophe Pettus | 2021-02-15 16:03:17 | Re: MultiXactMemberControlLock contention on a replica |