From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "Andrus" <noeetasoftspam(at)online(dot)ee> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Which record causes referential integrity violation on delete |
Date: | 2005-07-02 16:36:49 |
Message-ID: | 12340.1120322209@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
"Andrus" <noeetasoftspam(at)online(dot)ee> writes:
> ERROR: update or delete on "customer" violates foreign key constraint
> "invoice_customer_fkey" on "invoice"'
> How to determine the primary key of invoice table which causes this error
> in generic way ?
There is no generic way to do that, because the question makes an
assumption that isn't generic; in fact two of them. One, that there
is only one row of invoice referencing this customer row; and two,
that invoice even has a primary key, which is certainly not implied
by the existence of an FK reference to customer.
If your intention is to perform some generic action like deleting all
the referencing rows, you may well find that marking the foreign key
reference ON DELETE CASCADE (or one of the other available options)
would solve the problem without needing to add any client-side logic.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Greg Stark | 2005-07-02 16:44:54 | Re: Advice on structure /sequence / trigger |
Previous Message | Martijn van Oosterhout | 2005-07-02 15:01:48 | Re: wrong sort order |