# Can a User Override a SERIAL Column in PostgreSQL?

> Yes! A SERIAL column can be overridden by the user by explicitly specifying the column name and corresponding value in the INSERT statement.

In PostgreSQL, SERIAL is a pseudo-type that generates an auto-incrementing column. If you specify SERIAL as the data type for a column during table creation, PostgreSQL will automatically generate unique values for that particular column. However, occasionally users may need to override the default behavior of a SERIAL column. For this purpose, users must explicitly provide the column names and their corresponding values in the INSERT statement.

This post demonstrates how to override a SERIAL column in PostgreSQL using suitable examples.

 **Can a User Override a SERIAL Column in PostgreSQL?**

Yes! A SERIAL column can be overridden by the user. This can be done by explicitly specifying the name of the SERIAL column in the INSERT statement and providing a corresponding value for that particular column.

Consider the following steps for a profound understanding of overriding the SERIAL column:

 **Step 1: Create a SERIAL Column**

Let’s first create a SERIAL column. For this purpose, specify the “SERIAL” data type for a specific column at the time of table creation:
    
    
    CREATE TABLE command_prompt( 
    id SERIAL PRIMARY KEY, 
    name TEXT
    );

A table named “command_prompt” with a SERIAL data type has been successfully created:

 **Step 2: INSERT Data**

Now insert a couple of records in the command_prompt table by executing the following query:
    
    
    INSERT INTO command_prompt(name) 
    VALUES ('blog 1'), 
    ('blog 2'), 
    ('blog 3')
    RETURNING *;

The “RETURNING *” clause is used in the above query to get the newly inserted records:

From the above output snippet, you can observe that the id column is filled automatically with the sequence of unique values.

 **Step 3: Override the SERIAL Column**

Use the INSERT command, and explicitly specify the id column in it to override the SERIAL column:
    
    
    INSERT INTO command_prompt(id, name) 
    VALUES (5, 'blog 5')
    RETURNING *;

The following snippet demonstrates that the SERIAL column has been successfully overridden:

Let’s insert one more record in the “command_prompt” table for a profound understanding of the SERIAL column:
    
    
    INSERT INTO command_prompt(name)
    VALUES ('blog 6')
    RETURNING *;

It is clear from the output that when a new record is inserted, the auto-incrementing sequence of the serial column starts from where it left off:

That’s all about overriding a SERIAL column in PostgreSQL.

 **Conclusion**

Yes! A SERIAL column can be overridden by the user by explicitly specifying the name of the column in the INSERT statement and providing a corresponding value for that particular column. Overriding a SERIAL column allows us to specify a value of our choice instead of letting it automatically increase on its own. This write-up has demonstrated a complete guide on overriding a SERIAL column in PostgreSQL.

---
[View this page online](https://www.commandprompt.com/education/can-a-user-override-a-serial-column-in-postgresql/)