On Fri, May 11, 2012 at 9:03 PM, Carlos Mennens <carlos.menn...@gmail.com>wrote:

> I have a problem in SQL I don't know how to solve and while I'm sure
> there are 100+ ways to do this in ANSI SQL, I'm trying to find the
> most cleanest / efficient way. I have a table called 'users' and the
> field 'users_id' is listed as the PRIMARY KEY. I know I can use the
> COUNT function, then I know exactly how many records are listed but I
> don't know what the maximum or highest numeric value is so that I can
> use the next available # for a newly inserted record. Sadly the
> architect of this table didn't feel the need to create a sequence and
> I don't know how to find the highest value.
>
> Thank you for any assistance!
>
> --
> Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-sql
>


can you do it like this (slowest way):

insert into tableName(users_id,field1,....,fieldN)
select *max*(users_id)+1 as newId, value1,.....,valueN
from tableName


you can also create (if you have create grants ) some sequence and set it's
value to maximal value max(users_id), and then insert by selecting
nextvalue as this
nextval('sequenceName'::regclass)

also you can alter user_id field of table users (if permissions are
granted) and set default value to be nextval('sequenceName'::regclass)

-- 
---------------------------------------
Viktor Bojović
---------------------------------------
Wherever I go, Murphy goes with me

Reply via email to