DROP_DATABASE(7pg16)

πŸ“¦ version 16.15, in opensuse-leap 16.0

πŸ’… DROP_DATABASE β€” the one where we yeet a whole database into the void πŸ’…

Okay so bestie, welcome to the DROP DATABASE(7) page from the PostgreSQL 16.15 docs. This is the manual for the SQL command that literally deletes an entire database β€” catalog entries, data directory, the whole vibe. No cap, this is main character energy but also kinda scary, so let's get into it. πŸŽ€


🌸 SYNOPSIS 🌸

DROP DATABASE [ IF EXISTS ] name [ [ WITH ] ( option [, ...] ) ]

where option can be:

    FORCE

✨ DESCRIPTION ✨

DROP DATABASE drops a database. Like, it removes the catalog entries for the database and deletes the directory containing the data. It can only be executed by the database owner. It cannot be executed while you are connected to the target database. (Connect to postgres or any other database to issue this command.) Also, if anyone else is connected to the target database, this command will fail unless you use the FORCE option described below.

DROP DATABASE cannot be undone. Use it with care! 😭 This is not a drill, bestie. There is no undo button. Periodt.

πŸ¦‹ PARAMETERS πŸ¦‹

  • IF EXISTS β€” Do not throw an error if the database does not exist. A notice is issued in this case. Basically it's the "no worries if not" of database deletion. πŸ™ˆ
  • name β€” The name of the database to remove. This is the target, the main character we're saying goodbye to. πŸ’”
  • FORCE β€” Attempt to terminate all existing connections to the target database. It doesn't terminate if prepared transactions, active logical replication slots or subscriptions are present in the target database. This terminates background worker connections and connections that the current user has permission to terminate with pg_terminate_backend, described in Section 9.27.2. If connections would remain, this command will fail. So like, FORCE is giving "I will kick everyone out of the group chat" but it still respects the boundaries of prepared transactions and replication slots, iykyk. πŸ’…

🌈 NOTES 🌈

DROP DATABASE cannot be executed inside a transaction block. Highkey important β€” no sneaky transaction wrapping, bestie. 🚫

This command cannot be executed while connected to the target database. Thus, it might be more convenient to use the program dropdb(1) instead, which is a wrapper around this command. Lowkey, dropdb(1) is the bestie you call when you don't wanna deal with connection drama. 🫢


⭐ COMPATIBILITY ⭐

There is no DROP DATABASE statement in the SQL standard. So like, this is pure PostgreSQL excellence, no cap. πŸ‘‘


🧚 SEE ALSO 🧚

CREATE DATABASE (CREATE_DATABASE(7)) β€” because for every ending there's a new beginning, bestie. 🌱


This iconic page is brought to you by PostgreSQL 16.15, dated 2026 β€” slay, documentation team, slay. πŸ’–

πŸ“¦ where this page comes from