Forgot to add; another option is to use a PL function with an
exception handler.  This may be a bit more elegant approach but not
necessarily easier.

FYI

Jerry Sievers <[EMAIL PROTECTED]> writes:

> Benjamin Smith <[EMAIL PROTECTED]> writes:
> 
> > I want to be able to determine in advance whether or not a record is 
> > "deleteable" before displaying the button to delete the record. If it's not 
> > deleteable, it should say so before the user hits the button. 
> > 
> > But, the only way that I've been able to find out if the customer record is 
> > deletable is to begin a transaction, try to delete it, check to see if it 
> > worked, and then rollback the session. 
> > 
> > This causes my error logger to log errors everytime somebody looks at a 
> > customer record, and (I'm sure) is not very efficient. 
> > 
> > Is there a way to ask the database: "Are there any FK constraints that 
> > would 
> > prevent this record from being deleted?" 
> 
> Short of your own fancy function that walks the FK tree, no.  (BTW,
> this could be simple actually if the FK linkage is shallow.)
> 
> Add a statement to prevent the nuisance error message to the trans.
> 
> begin;
> set log_min_messages to log;
> do trial delete;
> rollback;
> 
> HTH
> 
> 
> -- 
> -------------------------------------------------------------------------------
> Jerry Sievers   305 854-3001 (home)     WWW ECommerce Consultant
>                 305 321-1144 (mobile  http://www.JerrySievers.com/
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
>        choose an index scan if your joining column's datatypes do not
>        match
> 

-- 
-------------------------------------------------------------------------------
Jerry Sievers   305 854-3001 (home)     WWW ECommerce Consultant
                305 321-1144 (mobile    http://www.JerrySievers.com/

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to