On Thu, Jan 27, 2005 at 00:35:25 -0500, Madison Kelly <linux@xxxxxxxxxxx> wrote: > Hi all, > > I have several tables with an 'id' column which is a simple 'serial > unique' type. Often when I insert a record the next thing I need is to > add or edit another table elsewhere using the ID of the entry I just > added. Currently what I do is: > > SELECT <table>_id FROM <table> ORDER BY <table>_id DESC LIMIT 1; > > and assume (safely thus far) that the returned value is the one I > just created. Obviously this is bulky and, should by chance another > column be added in that time between insert and read, I would get the > wrong value. > > Is there a way to do an INSERT (in perl, btw) where pgSQL returns the > value just created by the same INSERT? Thanks! You can use the currval function to get the id. Normally the sequence will have a name like table_column_seq. In 8.0, there is a function you can use to get the sequence name, which is a bit more robust than hard coding it. ---------------------------(end of broadcast)--------------------------- TIP 7: don't forget to increase your free space map settings