Re: insert trigger
От | Marc Mitchell |
---|---|
Тема | Re: insert trigger |
Дата | |
Msg-id | 004301c28677$b40ee360$e802010a@crosscountrycourier.com обсуждение исходный текст |
Ответ на | insert trigger ("Roberto Benitez" <RBENITEZ@houston.rr.com>) |
Список | pgsql-admin |
It would appear to me that you are really doing this the hard way. If you are trying to set/change fields in the same row that you are inserting (say to force an add date or userid) you could use an INSTEAD rule to transform the insert passing through the fields you don't wish to change and transforming the ones that you do. You turn what would be 3 statements into one. I think an alternative to this would also be a BEFORE INSERT trigger and function as I believe the function can simply change the current values of the row before the insert takes place. If you are trying to set/change fields in another table based on the values of the row inserted, then the rule should have access to NEW. attributes for the columns and their inserted values and there is no need for you to go out searching (SELECTing) for them. Hope this helps, Marc Mitchell - Senior Application Architect Enterprise Information Solutions, Inc. Downers Grove, IL 60515 marcm@eisolution.com ----- Original Message ----- From: "Roberto Benitez" <RBENITEZ@houston.rr.com> To: <pgsql-admin@postgresql.org> Sent: Monday, November 04, 2002 9:05 PM Subject: [ADMIN] insert trigger I have the following situation: when a new record is inserted in to a psql table, i want to be able to update certain fields. the way i'm doing it right now..to find the last record inserted...is by sorting the primary key (serial) in descending order and taking the first item in the list...the one at the top should be the one i just entered...and of course, i then procede to update the fieldsd i need to update.. So, basically would like to know if this will always work. will the one at the top (the one w/ the highest primary key [serial type]) always be the one i just entered. AND does psql ALWAYS execute the trigger(s) after EVERY single record that is inerted. what would happen if [ n ] different users try to insert records simultaniously? will psql insert one-execute the trigger, insert the next-execute the trigger..and so on? or will it insert ALL [n] records AND THEN execute the trigger? i would appreciate any advice--if this would work, or if there is a better way. thanks rbenitez22@yahoo.com
В списке pgsql-admin по дате отправления: