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