Re: [SQL] variables in pgSQL?

From: Chris Bitmead <chris(at)tech(dot)com(dot)au>
To: Heinz Hemken <zotz(at)franchiseloan(dot)com>
Cc: pgsql-sql(at)postgreSQL(dot)org
Subject: Re: [SQL] variables in pgSQL?
Date: 1999-07-13 03:12:49
Message-ID: 378AAEB1.D3EC3F0F@tech.com.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Bruce Momjian 1999-07-13 05:05:47 Re: [SQL] create temp table
Previous Message Heinz Hemken 1999-07-13 02:41:54 variables in pgSQL?