Re: [SQL] variables in pgSQL? - Mailing list pgsql-sql

From Chris Bitmead
Subject Re: [SQL] variables in pgSQL?
Date
Msg-id 378AAEB1.D3EC3F0F@tech.com.au
Whole thread Raw
In response to variables in pgSQL?  (Heinz Hemken <zotz@franchiseloan.com>)
List 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 by date:

Previous
From: Heinz Hemken
Date:
Subject: variables in pgSQL?
Next
From: Steven Bradley
Date:
Subject: create temp table