MySQL LAST_INSERT_ID() to Postgres - Mailing list pgsql-general

From Masis, Alexander \(US SSA\)
Subject MySQL LAST_INSERT_ID() to Postgres
Date
Msg-id 738lm5$7idec@dmzms99801.na.baesystems.com
Whole thread Raw
Responses Re: MySQL LAST_INSERT_ID() to Postgres  ("Scott Marlowe" <scott.marlowe@gmail.com>)
Re: MySQL LAST_INSERT_ID() to Postgres  (Russ Brown <pickscrape@gmail.com>)
Re: MySQL LAST_INSERT_ID() to Postgres  (Bill <pg@dbginc.com>)
Re: MySQL LAST_INSERT_ID() to Postgres  (Lennin Caro <lennin.caro@yahoo.com>)
List pgsql-general
I was mapping C++ application code that works with mySQL to work with
Postgres.
There were a number of articles on line regarding the conversion from
mySQL to Postgres like:
http://en.wikibooks.org/wiki/Programming:Converting_MySQL_to_PostgreSQL

http://groups.drupal.org/node/4680

http://jmz.iki.fi/blog/programming/converting_mysql_database_to_postgres
ql

http://www.raditha.com/blog/archives/000488.html

However, I found the most difficult issue was related to a MySQL's
"SELECT LAST_INSERT_ID()" sql call.
If your code did not use LAST_INSERT_ID(), then you don't have to read
this post.
    In MySQL "LAST_INSERT_ID()" is a MySQL's syntax that returns the
last auto_increment type ID of the row(record) inserted in a table.

    In other words, if your MySQL table had a auto_increment
datatype for a field, that field will automatically advance whenever a
new record(row) is inserted into that table.

    It is sometimes handy to know what is the value of that ID, that
has just been added to the table, so that that record(row) can be
addressed/updated later.

Well, in MySQL it's easy you just do:
"SELECT LAST_INSERT_ID();"
    In Postgres, however it is not that simple. You have to know the
name of so called "insert sequence". Postgres has a system function for
that( SQL line below ).
In Postgres you will have to provide the table and column name(
"auto_increment" type in MySQL or "serial or bigserial" in Postgres).

Here is that SQL query that returns the last inserted ID:

   "SELECT CURRVAL(
pg_get_serial_sequence('my_tbl_name','id_col_name'));"


Alexander Masis.



pgsql-general by date:

Previous
From: thefronny@gmail.com
Date:
Subject: importing dates
Next
From: "Scott Marlowe"
Date:
Subject: Re: importing dates