Re: ADD FOREIGN KEY fails, but the records exist - Mailing list pgsql-general

From Ron
Subject Re: ADD FOREIGN KEY fails, but the records exist
Date
Msg-id ae30118a-c64c-9351-5745-38b9a4fbd135@gmail.com
Whole thread Raw
In response to Re: ADD FOREIGN KEY fails, but the records exist  (Adrian Klaver <adrian.klaver@aklaver.com>)
Responses Re: ADD FOREIGN KEY fails, but the records exist
Re: ADD FOREIGN KEY fails, but the records exist
List pgsql-general


On 2/15/21 10:27 AM, Adrian Klaver wrote:
On 2/15/21 8:23 AM, Ron wrote:
On 2/15/21 10:17 AM, Adrian Klaver wrote:
On 2/15/21 8:12 AM, Ron wrote:
Postgresql 12.5


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

But my query's WHERE clause specifies "amended_response_id = 103309154;"  (I've highlighted it, if you have a GUI MUA.)

Yes but amended_response_id is referencing employer_response_id. So do you have a record that matches:

employer_response_id   part_date

103309154              2021-01-06 00:00:00

The time portions of the part_date fields don't match...

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, amended_response_id, part_date
from strans.employer_response
where amended_response_id = 103309154;
employer_response_id | amended_response_id |      part_date    
----------------------+---------------------+---------------------
            103309156 |           103309154 | 2021-01-06 00:00:00
(1 row)

sides=>
sides=>
sides=> select employer_response_id, amended_response_id, part_date
from strans.employer_response
where employer_response_id = 103309154;
employer_response_id | amended_response_id |      part_date    
----------------------+---------------------+---------------------
            103309154 |                     | 2021-01-06 15:14:03
(1 row)


--
Angular momentum makes the world go 'round.

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: ADD FOREIGN KEY fails, but the records exist
Next
From: Philip Semanchuk
Date:
Subject: pg_stat_user_tables.n_mod_since_analyze persistence?