Postgres Create Database If Not Exists: A Step-by-Step Guide

Creating a database in PostgreSQL is simple and straightforward. If you’re worried about accidentally creating a duplicate, there’s a command that checks if the database already exists before creating it. This helps prevent errors and keeps your database organized. Now, let’s walk you through the process, step by step.

Step by Step Tutorial to Create a PostgreSQL Database if Not Exists

Before we dive into the steps, let’s understand what we’re about to do. We’re going to use PostgreSQL commands to create a new database only if it doesn’t already exist. This is a smart way to avoid errors and keep your databases neat and tidy.

Step 1: Open the PostgreSQL command line tool

To start, open the psql command-line interface where you can enter your SQL commands.

Once you have the psql tool open, you’re ready to start entering commands. Make sure you’re logged in with a user that has the necessary permissions to create a new database.

Step 2: Use the CREATE DATABASE command with the IF NOT EXISTS option

Type the command CREATE DATABASE IF NOT EXISTS database_name;, replacing "database_name" with the name you want for your new database.

The IF NOT EXISTS option is the magic ingredient here. It tells PostgreSQL to check if there’s a database with the same name already. If there is, it won’t create a new one, and you won’t get an error message.

Step 3: Check that the database has been created

Use the command l to list all databases and confirm that your new database is there.

After executing the l command, you should see a list of all databases in your PostgreSQL instance. Look for the name of the database you just created to make sure it’s on the list.

After completing these steps, you’ll have a new database in PostgreSQL, created only if it didn’t exist before. This ensures you won’t have any unnecessary duplicates cluttering up your database system.

Tips for postgres create database if not exists

  • Always double-check the spelling of your database name when using the CREATE DATABASE command.
  • Remember to end your SQL commands with a semicolon (;), or they won’t execute.
  • Make sure you have the necessary permissions to create a new database.
  • Use descriptive and unique names for your databases to avoid confusion.
  • Regularly backup your databases before making any major changes.

Frequently Asked Questions

What does the IF NOT EXISTS option do?

It checks if a database with the same name already exists, and if it does, it prevents the creation of a new one.

Can I use this command with any version of PostgreSQL?

Yes, the IF NOT EXISTS option is available in PostgreSQL 9.1 and later versions.

Do I need to be logged in as a superuser to create a database?

Not necessarily, but you do need to have the CREATE privilege on the current database or be a database superuser.

What if I accidentally create a duplicate database?

If you don’t use the IF NOT EXISTS option and create a duplicate, you’ll simply get an error message. No harm done, but it’s a good practice to use the option to avoid this.

Can I create a database with a specific character set or template?

Yes, you can include additional options in your CREATE DATABASE command to specify character sets, templates, and more.


  1. Open the PostgreSQL command line tool.
  2. Use the CREATE DATABASE command with IF NOT EXISTS.
  3. Check that the database has been created.


Creating a database in PostgreSQL doesn’t have to be a headache, even if you’re concerned about accidentally duplicating your efforts. By using the simple ‘IF NOT EXISTS’ condition, you can easily ensure that your database creation process is error-free and efficient. It’s a great way to keep your data organized and to maintain a clean database environment.

Whether you’re a seasoned database administrator or just getting started with PostgreSQL, mastering this command is essential. It not only helps you avoid mistakes but also deepens your understanding of how PostgreSQL operates. Experiment with different options and configurations to see what works best for your specific needs. And remember, if you’re ever in doubt, the PostgreSQL documentation is an invaluable resource.

So go ahead and give it a try—create your new PostgreSQL database with confidence, knowing that you won’t trip over any existing databases. And once you’re done, take a moment to appreciate the power and flexibility PostgreSQL offers. It’s no wonder that it’s become one of the most popular open-source relational database systems in the world. Happy querying!