Re: What is the right syntax for retrieving the last_insert_id() in Postgresql ?

From: john <johnf(at)jfcomputer(dot)com>
To: pgsql-sql(at)lists(dot)postgresql(dot)org
Subject: Re: What is the right syntax for retrieving the last_insert_id() in Postgresql ?
Date: 2020-03-03 16:04:44
Message-ID: 546aa670-4ff5-01dd-7c37-0e69fdfe6c85@jfcomputer.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

currval('id_seq') where id_seq is the sequence you are using for the key
(t_id). That assumes you are using a sequence.
Johnf

On 3/3/20 7:50 AM, Karen Goh wrote:
> Hi Pavel,
>
> Using this as reference and your link :
>
> https://dba.stackexchange.com/questions/3281/how-do-i-use-currval-in-postgresql-to-get-the-last-inserted-id
>
> I tried :
>
> select lastval('t_id') from table_tutor;
>
> but it is not working.
>
> Is there any tutorial out there that teaches the exact syntax ?
>
> Thanks & regards,
> Karen
> On Sunday, March 1, 2020, 06:27:00 PM GMT+8, Pavel Stehule
> <pavel(dot)stehule(at)gmail(dot)com> wrote:
>
>
>
>
> ne 1. 3. 2020 v 11:18 odesílatel Karen Goh <karenworld(at)yahoo(dot)com
> <mailto:karenworld(at)yahoo(dot)com>> napsal:
>
> Hi,
>
> I hope I am posting on the right forum.  I googled but I can't
> find any solution pertaining to my problem.
>
> Could someone know what is the syntext for last_insert_id() in
> Postgresql for me to insert into my sql execute query?
>
>
> Postgres has not last_insert_id function. Maybe you think "lastval"
> function
>
> https://www.postgresql.org/docs/current/functions-sequence.html
>
> Regards
>
> Pavel
>
>
> public int getTutorById() {
>                 openConnection();
>                 int tutor_id = 0;
>                 try {
>                         Statement stmt3 =
> connection.createStatement();
>                         ResultSet rs = stmt3.executeQuery("SELECT
> last_insert_id() from xtutor");
>                         {
>                                 while (rs.next()) {
>                                         tutor_id = rs.getInt(1);
>                                 }
>                         }
>                 } catch (SQLException e) {
>                         e.printStackTrace();
>                 }
>                 return tutor_id;
>         }
>
> org.postgresql.util.PSQLException: ERROR: function
> last_insert_id() does not exist
>   Hint: No function matches the given name and argument types. You
> might need to add explicit type casts.
>   Position: 8
>         at
> org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2440)
>         at
> org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2183)
>         at
> org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:308)
>         at
> org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:441)
>         at
> org.postgresql.jdbc.PgStatement.execute(PgStatement.java:365)
>         at
> org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:307)
>         at
> org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:293)
>         at
> org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:270)
>         at
> org.postgresql.jdbc.PgStatement.executeQuery(PgStatement.java:224)
>         at daoMySql.tutorDAOImpl.getTutorById(tutorDAOImpl.java:202)
>         at daoMySql.tutorDAOImpl.getAlltutors(tutorDAOImpl.java:161)
>         at business.manager.getAlltutors(manager.java:99)
>
> The generated id is successfully generated by JDBC.
>
> The errors when I tested in out using PGAdmin4 is
>
> ERROR:  function last_insert_id() does not exist
> LINE 1: SELECT last_insert_id() from xtutor;
>                ^
> HINT:  No function matches the given name and argument types. You
> might need to add explicit type casts.
> SQL state: 42883
> Character: 8
>
> Postgresql 11, Windows 11
>
> Thanks.
>
>
>

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Pavel Stehule 2020-03-03 16:26:24 Re: What is the right syntax for retrieving the last_insert_id() in Postgresql ?
Previous Message Karen Goh 2020-03-03 15:50:08 Re: What is the right syntax for retrieving the last_insert_id() in Postgresql ?