The proper way to do this is basically this:
begin;
insert into table test values ('abc',123);
select currval('sequsedbytest');
insert into dependent_table values (keyfromabovecurrval,'moredata',456);
commit;
On Mon, 23 Jun 2003, Michael Kovalcik wrote:
> Hello,
>
> I'm trying to find out how I select the last id in a
> column if I don't know anything else about the row.
> What i am doing is inserting information into my
> Orders table and the id is auto-incrementing. The
> next thing i want to be able to do is grab the the id
> of the order i just inserted. How do i do this?
>
> Here is the code i have so far:
>
> my $sql = "INSERT INTO ${Orders}
> (locationid,shippingid,statusid,date) VALUES (?
> ,?,?,?)";
>
> my $sth = $dbh->prepare($sql);
>
> $sth->execute(${LocationID},${ShippingID},${StatusID},${date});
> #--*************************************
> my $sth = $dbh->prepare("SELECT id FROM ${Orders}");
>
> $sth->execute();
> $OrderID = $sth->fetchrow_arrayref;
>
> I know the select statement that i have will not work,
> because it will bring me every id number in the table.
> I just want the latest one.....
>
> Please HELP............
>
> Thank you so much,
> Mike
>
> __________________________________
> Do you Yahoo!?
> SBC Yahoo! DSL - Now only $29.95 per month!
> http://sbc.yahoo.com
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
> (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>