Thread: Conditional updateable view

Conditional updateable view

From
snacktime
Date:
I can't seem to find an example of how to add restrictions to the
where clause of an updateable view created via the rule system.  For
example I don't want the update to complete if a where clause is
missing entirely, and in some cases I want to only allow the update if
the where clause specifies a particular column.

Is there a way to do this?

Chris

Re: Conditional updateable view

From
"Peter Childs"
Date:


On 16/12/2007, snacktime <snacktime@gmail.com> wrote:
I can't seem to find an example of how to add restrictions to the
where clause of an updateable view created via the rule system.  For
example I don't want the update to complete if a where clause is
missing entirely, and in some cases I want to only allow the update if
the where clause specifies a particular column.

Is there a way to do this?


Quick answer no.

Long answer. You can limit which fields can be updated and indeed rename fields or update completely different tables using rules and/or triggers. But you not can say that the where clause must include something.
 
Peter

Re: Conditional updateable view

From
"Merlin Moncure"
Date:
On Dec 15, 2007 8:57 PM, snacktime <snacktime@gmail.com> wrote:
> I can't seem to find an example of how to add restrictions to the
> where clause of an updateable view created via the rule system.  For
> example I don't want the update to complete if a where clause is
> missing entirely, and in some cases I want to only allow the update if
> the where clause specifies a particular column.
>
> Is there a way to do this?

That's an interesting question.  There are some sneaky ways to slip
something into a rule but in your case that doesn't pass the smell
test.  ISTM you are trying to enforce integrity in the wrong place.
If you want strict checking on input parameters you can make a
function and have that update the view...inelegant but effective.
Ideally, you don't need this because your constraints are keeping
everything together.

Maybe with some more background I could give you some specific advice.

merlin