Search Postgresql Archives

Re: Checking for Foreign Keys constraining a record?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <jerry@xxxxxxxxxxxxxxxx> writes:

> Benjamin Smith <lists@xxxxxxxxxxxxxxxxxx> 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/


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux