PostgreSQL Operationen

Da bei PostgreSQL nicht alles so simpel ist, wie bei MySQL, hier ein paar Operationen zum schnellen nachschlagen.

Inhalt

Mit dem Server verbinden

su - postgres
psql

Datenbanken auflisten

\l

Ausgabe:

postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+----------+----------+-------------+-------------+-----------------------
 mydb      | mydb     | UTF8     | de_CH.UTF-8 | de_CH.UTF-8 | 
 postgres  | postgres | UTF8     | de_CH.UTF-8 | de_CH.UTF-8 | 

(4 rows)

Alternativ mit SQL:

SELECT datname FROM pg_database;

Mit einer Datenbank verbinden

postgres=# \c mydb

Ausgabe:

You are now connected to database "mydb" as user "postgres".
mydb=#

Tabellen einer Datenbank auflisten

mydb=# \dt

Alle Tabellen löschen

Wenn die Tabellen auf dem selben Schema (Standardmässig „public“) sind, kann man das Schema löschen und neu erstellen.

DROP SCHEMA public CASCADE;
CREATE SCHEMA public;

Achtung: Dies kann unter Umständen Probleme mit gesetzten Berechtigungen im Schema hervorrufen.
Abhilfe schafft vielleicht der Zusatz GRANT ALL ON schema public:

GRANT ALL ON schema public TO mydb;

Alternativ kann man auch ein SQL-Script mit den einzelnen Tabellen generieren lassen:

select 'drop table if exists "' || tablename || '" cascade;' from pg_tables;

Gegebenenfalls kann man die Query noch anpassen:

select 'drop table if exists "' || tablename || '" cascade;' 
  from pg_tables
 where schemaname = 'public'; -- or any other schema
select 'drop table if exists "' || tablename || '" cascade;' from pg_tables where tablename not like 'pg_%';

Datenbank exportieren (dump sichern)

pg_dump mydb > mydb.sql

Datenbank importieren (SQL dump laden)

psql mydb < mydb.sql

Referenzen

Published by

Steven Varco

Steven ist ein Redhat RHCE- und Kubernetes CKA Zertifizierter Linux-Crack und ist seit über 20 Jahren sowohl beruflich wie auch privat auf Linux spezialisiert. In seinem Keller steht ein Server Rack mit diversen ESX und Linux Servern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert