Pendahuluan
PostgreSQL menawarkan dua metode baris perintah untuk menjatuhkan database - menggunakan DROP DATABASE
pernyataan atau utilitas shell.
Menghapus database yang tidak digunakan adalah praktik yang baik dan membantu menjaga ruang kerja tetap bersih. Namun, perlu diingat bahwa menghapus database PostgreSQL yang ada akan menghapus semua entri katalog dan data untuk database tersebut.
Lanjutkan membaca untuk mempelajari cara menghapus database di PostgreSQL.

Prasyarat
- PostgreSQL 10 atau lebih tinggi diinstal dan dikonfigurasi (ikuti panduan kami untuk Ubuntu atau Windows; jika sudah diinstal, periksa versi PostgreSQL pada sistem).
- Akses ke terminal dengan hak istimewa sudo.
HAPUS PERNYATAAN DATABASE
Penting :HANYA pemilik database yang dapat menghapus database.
Metode pertama untuk menghapus database PostgreSQL adalah dengan menggunakan pernyataan SQL berikut:
DROP DATABASE <database name>;
Perintah menghapus direktori yang berisi informasi database dan entri katalog. Hanya pemilik database yang dapat menjalankan DROP DATABASE
memerintah. Jika ada orang yang sedang menggunakan database, perintah tidak akan dijalankan.
Untuk melihat bagaimana DROP DATABASE
berhasil, lakukan hal berikut:
1. Buka terminal (CTRL +ALT +B ).
2. Hubungkan ke PostgreSQL:
sudo -i -u postgres psql

3. Buat database untuk contoh:
CREATE DATABASE example;

Terminal mencetak pernyataan yang dieksekusi.
4. Buat daftar semua database dengan:
\l

Basis data dari langkah sebelumnya muncul di daftar.
5. Jatuhkan database dengan:
DROP DATABASE example;

Output menunjukkan pernyataan yang dieksekusi.
6. Buat daftar semua database lagi:
\l
Contoh database tidak lagi muncul dalam daftar.
JIKA Ada
IF EXISTS
opsi terbuka untuk semua versi di mana DROP DATABASE
tersedia. Sintaks perintah lengkap dengan IF EXISTS
pilihannya adalah sebagai berikut:
DROP DATABASE IF EXISTS <database name>;
Opsi pertama-tama memeriksa apakah database ada sebelum menghapusnya. Jika database ada, perintah menjatuhkan database. Namun, jika database tidak ada, perintah akan mencetak pesan pemberitahuan yang informatif.
Untuk menguji cara kerja perintah, ikuti langkah-langkah di bawah ini:
1. Buat database contoh:
CREATE DATABASE example;
2. Jatuhkan database menggunakan IF EXISTS
pilihan:
DROP DATABASE IF EXISTS example;

Hasilnya identik dengan menggunakan DROP DATABASE
jika databasenya ada.
3. Basis data tidak lagi tersedia. Jalankan kembali perintah untuk melihat hasilnya:
contohDROP DATABASE IF EXISTS example;

Pesan pemberitahuan dicetak yang menyatakan bahwa basis data tidak ada.
4. Untuk melihat perbedaan antara menggunakan IF EXISTS
dan menghilangkan opsi, jalankan perintah berikut:
DROP DATABASE example;

Menggunakan DROP DATABASE
tanpa IF EXISTS
opsi pada database yang tidak ada menampilkan pesan kesalahan.
DENGAN (PAKSA)
WITH (FORCE)
opsi tersedia di PostgreSQL versi 13 dan lebih tinggi.
DROP DATABASE
metode tidak akan menghapus database jika sedang digunakan. Jika database sedang digunakan, terminal mencetak kesalahan bahwa sesi database terbuka.

Tambahkan WITH (FORCE)
opsi untuk menutup sesi secara paksa dan menghapus database:
DROP DATABASE <database name> WITH (FORCE);

Jika memungkinkan, Postgres menutup sesi pengguna dan menghapus database secara paksa.
Utilitas dropdb
Utilitas shell dropdb adalah pembungkus untuk DROP DATABASE
memerintah. Secara efektif, kedua metode itu identik. Namun, dropdb menawarkan opsi tambahan termasuk menghapus basis data dari jarak jauh.
Sintaks dasarnya adalah:
dropdb <connection parameters> <options> <database name>
Opsi
Tabel di bawah menunjukkan semua opsi yang memungkinkan saat menggunakan utilitas dropdb.
Opsi | Jenis | Deskripsi |
---|---|---|
-e --echo | Opsi | Mencetak perintah yang dikirim dropdb ke server. |
-f --force | Opsi | Berusaha untuk menghentikan semua koneksi saat ini sebelum menjatuhkan database. |
-i --interactive | Opsi | Meminta verifikasi sebelum menjalankan penghapusan basis data. |
-V --version | Opsi | Konsol mencetak versi utilitas. |
--if-exists | Opsi | Mencetak pemberitahuan alih-alih kesalahan jika database tidak ada. |
-? --help | Opsi | Tampilkan menu bantuan. |
-h <host> --host=<host> | Parameter koneksi | Menentukan nama host mesin tempat server dijalankan. |
-p <port> --port=<port> | Parameter koneksi | Menentukan port TCP tempat server mendengarkan. |
-U <username> --username <username> | Parameter koneksi | Hubungkan sebagai pengguna yang ditentukan. |
-w --no-password | Parameter koneksi | Jangan pernah mengeluarkan perintah kata sandi. Berguna untuk tugas batch dan skrip saat tidak ada pengguna. |
-W --password | Parameter koneksi | Tekan paksa kata sandi. Tanpa opsi, server kehilangan upaya koneksi jika diperlukan kata sandi. |
--maintenance-db=<database name> | Parameter koneksi | Opsi menentukan koneksi nama database. |
Misalnya, coba perintah berikut untuk melihat cara kerja dropdb dengan -i
dan -e
pilihan:
dropdb -i -e example
Program meminta konfirmasi sebelum penghapusan karena -i
tanda.

Tekan y untuk mengkonfirmasi. Program mencetak perintah yang dihasilkan ke server. Karena database tidak ada, program akan menampilkan kesalahan dan keluar.