Re: [SQL] variables in pgSQL?
От | Chris Bitmead |
---|---|
Тема | Re: [SQL] variables in pgSQL? |
Дата | |
Msg-id | 378AAEB1.D3EC3F0F@tech.com.au обсуждение исходный текст |
Ответ на | variables in pgSQL? (Heinz Hemken <zotz@franchiseloan.com>) |
Список | pgsql-sql |
CREATE SEQUENCE id_seq; INSERT INTO masterindex_table(user_id, name) SELECT nextval('id_seq'), 'Mr Foo' from masterindex_table where 12345 not in (SELECT user_id from masterindex_table); This will create a new record in masterindex_table only if the id 12345 is not already existing. All in one SQL command! Heinz Hemken wrote: > > The following is legal in MS SQL: > > declare @user_id int > select @user_id = user_id from masterindex_table where masterindexid = 1 > > whereupon the local variable can be used for other things. Is there > anything similar in pgSQL? I want to have a user table for a web > database, and I want to be able to do a begin/commit block where I 1) > check to see if the user exists in an account table, 2) if not, get the > next available userid from a master index table, 3) add a new userid to > the account table for the new user, and 4) increment the userid field in > the master index table. I want this to occur all within a single > transaction block so that no race conditions exist, and the masterindex > table is only being used by one process at a time for the whole > operation. > > How can I do this in postgresql? Is there a better approach? > > -- > Heinz Hemken > IFC Capital Corporation > San Diego, C
В списке pgsql-sql по дате отправления: