In a  view of three joined tables,  I install a  INSTEAD OF trigger fx  on the 
view.  The fx contains a  list of felds/columns variable associated to each 
base tables.
When an update operation occurs, I am successfully generating the target list 
of colums altered on 
Each base table.  ( comparing OLD v NEW ) and attempting some dynamic sql 
generation in my trigger fx.
 

I am taking the list of modified fields on the view, and attempting an update 
on appropriate  base tables.
In this sample case "language_preference" was  modified on the view and should 
update the admn.user base table

EXECUTE format(' UPDATE admin.user SET (%I) = ( SELECT %I FROM $1 )  WHERE id = 
$2)', USER_SETTING, USER_SETTING )
                    USING NEW,  NEW.id;

When this executes my exception handler generates "err syntax error at or near 
\"$1\"

The formatted statement  on my base table (admin.user )  that is throwing this 
is  executing would be:
UPDATE admin.user SET (language_preference) = ( SELECT language_preference FROM 
$1 ) WHERE id = $2)"

Feel Like Im close but missing something fundamental.

I also an  update variant

UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ]
    SET 
          ( column_name [, ...] ) = [ ROW ] ( { expression | DEFAULT } [, ...] )

Which I thought might be applicable.  but still googling for sample 
implementation.


Thanks for any guidance in this method or better methods to update the base 
tables.


Regards


Dave Day




Reply via email to