Re: ADD FOREIGN KEY fails, but the records exist
От | Adrian Klaver |
---|---|
Тема | Re: ADD FOREIGN KEY fails, but the records exist |
Дата | |
Msg-id | 37d7ad6b-3da6-0778-47fe-e6256babb4ad@aklaver.com обсуждение исходный текст |
Ответ на | ADD FOREIGN KEY fails, but the records exist (Ron <ronljohnsonjr@gmail.com>) |
Ответы |
Re: ADD FOREIGN KEY fails, but the records exist
|
Список | pgsql-general |
On 2/15/21 8:12 AM, Ron wrote: > 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) The error: DETAIL: Key (amended_response_id, part_date)=(103309154, 2021-01-06 00:00:00) is not present in table "employer_response" is pointing at 103309154 for amended_response_id = employer_response_id. You are showing an employer_response_id of 103309156 > > > 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) > > -- Adrian Klaver adrian.klaver@aklaver.com
В списке pgsql-general по дате отправления: