Stamping rows...

Поиск
Список
Период
Сортировка
От Di Croce, Tony
Тема Stamping rows...
Дата
Msg-id B2CC0E0F2C10D511B86600B0D06898420EA053DE@NETSRVR1.pelco.org
обсуждение исходный текст
Ответы Re: Stamping rows...  (Michael Fuhr <mike@fuhr.org>)
Re: Stamping rows...  ("Greg Sabino Mullane" <greg@turnstep.com>)
Список pgsql-admin
I am trying to find a way to stamp all of the rows affected by an update (or insert) with a unique value. For example, consider the following table:
 
create table people( name text, address text, city text, state text, zip text, phone text, change_number integer );
 
I would like the "change_number" column to hold the unique value.
 
I would like someone to be able to submit a query like this:
 
update people set name='tony', address='12345 A St', city='Downey', state='Ca', zip='92372', phone='864-0618' where zip='60612';
 
At this point, I want a couple things to happen:
 
1) Generate a unique "change_number" for this query. I can probably do this with a sequence.
2) As each row is updated (with the values the user specified in the update command), set it's "change_number" to be equal to the value generated in step 1.
 
At first I tried to do this as a trigger function. The problem with this solution is that if I dont have the function called for each row, I cannot modify those rows. if I DO have the function called for each row, how do they get the "change_number" they cannot simply call nextval() as it will be different for each row (they also couldn't call curval() because then who is ever calling nextval()?)
 
I also looked into rules, and but couldn't come up with a non recursive solution.
 
Any ideas?
 
    td
 

В списке pgsql-admin по дате отправления:

Предыдущее
От: Michael Fuhr
Дата:
Сообщение: Re: error loading data with copy
Следующее
От: Nicholas Walker
Дата:
Сообщение: Escape Quoting