I'd like to be able to detect if a record has associations. I don't want to
actually delete it, just know if it could be deleted. (This is to build an
intelligent menu on a GUI)

On 5/29/07, Albe Laurenz <[EMAIL PROTECTED]> wrote:

> Is there anyway to know if a DELETE will violate an FK
> without actually trying it?

I don't know what you mean by 'without trying it', but does the
following answer your question?

CREATE TABLE a (id integer PRIMARY KEY);
CREATE TABLE b (id integer PRIMARY KEY,
      a_id integer NOT NULL CONSTRAINT b_fkey REFERENCES a(id));

INSERT INTO a (id) VALUES (1);
INSERT INTO b (id, a_id) VALUES (42, 1);

DELETE FROM a WHERE id=1;
ERROR:  update or delete on table "a" violates foreign key constraint
"b_fkey" on table "b"
DETAIL:  Key (id)=(1) is still referenced from table "b".

Yours,
Laurenz Albe

Reply via email to