# How to Fix the “lastval is not yet defined” Error When Calling LASTVAL() in Postgres

> In PostgreSQL, the “lastval of the sequence is not yet defined” error occurs when the LASTVAL() function is invoked/called prior to the NEXTVAL() function.

In PostgreSQL, the “ **LASTVAL()** ” function is an inbuilt function that assists in working with sequences. It retrieves the most recently generated sequence value within the current session. This function is session-specific, meaning it only retrieves the last value of a sequence fetched within the current session. However, calling the LASTVAL() function before NEXTVAL() function in the current session will show you a “lastval of the sequence is not yet defined” error.

This write-up illustrates a complete process of fixing the “lastval of the sequence is not yet defined” error in PostgreSQL.

 **How to Fix the “lastval is not yet defined” Error When Calling/Invoking LASTVAL() in Postgres?**

The stated error occurs when the **LASTVAL()** function is invoked before the **NEXTVAL()** function. For a profound understanding, let’s create a new sequence and apply the LASTVAL() function to it:
    
    
    CREATE SEQUENCE commandprompt;

The below snippet shows that when the NEXTVAL() function is not used in the current session then directly invoking the LASTVAL() function will throw the stated error:
    
    
    SELECT LASTVAL();

To rectify this error, all you need to do is invoke the NEXTVAL() function before the LASTVAL() function at least once:
    
    
    SELECT NEXTVAL('commandprompt'),
    NEXTVAL('commandprompt');

In this example, the NEXTVAL() function is invoked a couple of times:

Now call the LASTVAL() function to see how it works:
    
    
    SELECT LASTVAL();

Note that the LASTVAL() function doesn’t accept any argument. The output snippet shows that the “LASTVAL()” function shows the last retrieved value of the NEXTVAL() function in the current session:

That’s all about fixing the “lastval of the sequence is not yet defined” error in PostgreSQL.

 **Conclusion**

In PostgreSQL, the “lastval of the sequence is not yet defined” error occurs when the **LASTVAL()** function is invoked/called prior to the **NEXTVAL()** function. To fix the stated error, all you need to do is invoke the NEXTVAL() function before the LASTVAL() function at least once. This write-up has illustrated the complete process of fixing the “lastval of the sequence is not yet defined” error in PostgreSQL.

---
[View this page online](https://www.commandprompt.com/education/how-to-fix-the-lastval-is-not-yet-defined-error-when-calling-lastval-in-postgres/)