Обсуждение: Setting session global variables
Is there a way to set a session global variable in PostgreSQL? The only thing I see are examples of setting config variables. What I would like to do is this: Have a table "insertedby" or something that has created_object oid, created_by_user oid, creation_date datetime Then have a procedure, so that any table that wanted to record who inserted which record could just use that procedure as an insert trigger. The trigger would simply read the "current_user" session variable (which the client had presumably set upon connection) and use it to populate the "created_by_user" field. However, the only way I can see to implement this is to have session global variables. Is there a way to fake session global variables with a table? Any comments would be appreciated. Jon johnnyb6@sdf.lonestar.org SDF Public Access UNIX System - http://sdf.lonestar.org
Jonathan Bartlett <johnnyb6@SDF.lonestar.org> writes: > However, the only way I can see to implement this is to have session > global variables. Is there a way to fake session global variables with a > table? Any comments would be appreciated. You could do it with temp tables: the same temp table name would refer to a different table in each session. (You realize, of course, that CURRENT_USER already exists per SQL spec. I assume you just meant that you'd like to have things *like* CURRENT_USER, but defined by yourself...) regards, tom lane
Yes, that's perfect! Actually, I was thinking of a real user, but more in the fashion of "pretend" users. If you've ever used Oracle apps, it would be like an apps user, not the user "apps". Anyway, that's an excellent idea. Thank you much! Jon johnnyb6@sdf.lonestar.org SDF Public Access UNIX System - http://sdf.lonestar.org On Wed, 16 May 2001, Tom Lane wrote: > Jonathan Bartlett <johnnyb6@SDF.lonestar.org> writes: > > However, the only way I can see to implement this is to have session > > global variables. Is there a way to fake session global variables with a > > table? Any comments would be appreciated. > > You could do it with temp tables: the same temp table name would refer > to a different table in each session. > > (You realize, of course, that CURRENT_USER already exists per SQL spec. > I assume you just meant that you'd like to have things *like* > CURRENT_USER, but defined by yourself...) > > regards, tom lane > > ---------------------------(end of broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/users-lounge/docs/faq.html >