postgres

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
postgres [18/04/2025 - 10:48] – [Benutzeraktionen] adminpostgres [27/07/2025 - 15:16] (aktuell) thommie_netzwissen.de
Zeile 12: Zeile 12:
 </code> </code>
  
-<file>+<code>
 \l \l
  
-</file>+</code>
  
 listet alle Datenbanken listet alle Datenbanken
  
-  * \c verbindet zu einer Datenbank +  * * \c verbindet zu einer Datenbank\c verbindet zu einer Datenbank* \c verbindet zu einer Datenbank\c verbindet zu einer Datenbank 
-  * \dt zeigt die Tabellen nach einer Verbindung +  * * \dt zeigt die Tabellen nach einer Verbindung\dt zeigt die Tabellen nach einer Verbindung* \dt zeigt die Tabellen nach einer Verbindung\dt zeigt die Tabellen nach einer Verbindung 
-  * \d und \d+ zeigt die Spalten einer Tabelle +  * * \d und \d+ zeigt die Spalten einer Tabelle\d und \d+ zeigt die Spalten einer Tabelle* \d und \d+ zeigt die Spalten einer Tabelle\d und \d+ zeigt die Spalten einer Tabelle 
-  * \du Benutzerrollen+  * * * \du Benutzerrollen\du Benutzerrollen* \du Benutzerrollen\du Benutzerrollen 
 + 
 +===== Datenbank und User anlegen ===== 
 + 
 +<code> 
 +create database sqlmail; 
 + 
 +create user sqlmail with encrypted password 'xxxxxxxxxxxx'; 
 + 
 +grant all privileges on database sqlmail to sqlmail; 
 + 
 +</code>
  
 ===== Datenbank duplizieren ===== ===== Datenbank duplizieren =====
Zeile 29: Zeile 40:
  
 <code> <code>
- <font inherit/monospace;;inherit;;#000000background-color:#ffffff;>SELECT usename, datname, state FROM pg_stat_activity WHERE usename='discourse'</font>+SELECT usename, datname, state FROM pg_stat_activity WHERE usename='discourse2';
  
 </code> </code>
  
-zuerst alle aktiven Verbindungen trennen+Alle aktiven Verbindungen zu dieser DB trennen
  
 <code> <code>
 SELECT pg_terminate_backend(pid) SELECT pg_terminate_backend(pid)
 FROM pg_stat_activity FROM pg_stat_activity
-WHERE datname = 'discourse' AND leader_pid IS NULL;+WHERE datname = 'discourse2' AND leader_pid IS NULL;
  
 </code> </code>
Zeile 57: Zeile 68:
 dt listet alle Tabellen in einer Datenbank auf dt listet alle Tabellen in einer Datenbank auf
  
-Alle Tabellen in einer DB löschen+Nach "\c discourse2": alle Tabellen in einer DB löschen
 <code> <code>
  
Zeile 77: Zeile 88:
  
 neuen User anlegen ("ROLE") neuen User anlegen ("ROLE")
- 
 <code> <code>
 +
 postgres=# CREATE ROLE discourse2; postgres=# CREATE ROLE discourse2;
 CREATE ROLE CREATE ROLE
Zeile 91: Zeile 102:
  
 </code> </code>
 +
 ==== GRANT Statement ==== ==== GRANT Statement ====
  
Zeile 96: Zeile 108:
  
 <code> <code>
- <font inherit/monospace;;inherit;;#000000background-color:#ffffff;>ALTER ROLE discourse2 LOGIN;</font> +ALTER ROLE discourse2 LOGIN; 
 </code> </code>
  
Zeile 108: Zeile 121:
 </code> </code>
  
-privilege_list kann ''[[https://neon.tech/postgresql/postgresql-tutorial/postgresql-select|SELECT'']]''''[[https://neon.tech/postgresql/postgresql-tutorial/postgresql-insert|INSERT'']]'',''[[https://neon.tech/postgresql/postgresql-tutorial/postgresql-update|UPDATE'']]''''[[https://neon.tech/postgresql/postgresql-tutorial/postgresql-delete|DELETE'']]'',''[[https://neon.tech/postgresql/postgresql-tutorial/postgresql-truncate-table| TRUNCATE'']]'' etc. sein. Mit ALL geht alles (lesen, schreiben, löschen usw.+privilege_list kann [[https://neon.tech/postgresql/postgresql-tutorial/postgresql-select|SELECT'']] , [[https://neon.tech/postgresql/postgresql-tutorial/postgresql-insert|INSERT'']],[[https://neon.tech/postgresql/postgresql-tutorial/postgresql-update|UPDATE'']], [[https://neon.tech/postgresql/postgresql-tutorial/postgresql-delete|DELETE'']],[[https://neon.tech/postgresql/postgresql-tutorial/postgresql-truncate-table|TRUNCATE'']]etc. sein. Mit ALL geht alles (lesen, schreiben, löschen usw.
 <code> <code>
  
Zeile 125: Zeile 138:
 </code> </code>
  
 +===== Tabellen-Aktionen =====
 +
 +Alle Tabellen löschen
 +
 +<code>
 +DO $$
 +DECLARE
 +    r RECORD;
 +BEGIN
 +    FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = 'public') LOOP
 +   EXECUTE 'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE';
 +    END LOOP;
 +END $$;
 +
 +</code>
 +
 +check
 +<code>
 +
 +SELECT tablename FROM pg_tables WHERE schemaname = 'public';
 +
 +</code>
 +
 +===== Daten-Aktionen =====
 +
 +<code>
 +do $$ declare
 +   r record;
 +begin
 +   for r in (select tablename from pg_tables where schemaname = 'my-schema-name') loop
 +   execute 'drop table if exists ' || quote_ident(r.tablename) || ' cascade';
 +   end loop;
 +end $$;
 +
 +</code>
 +
 +Komplette Datenbank löschen
 +<code>
 +
 +drop DATABASE onlyoffice;
 +
 +</code>
  
 ===== Historie der Kommandos in psql ===== ===== Historie der Kommandos in psql =====
Zeile 136: Zeile 191:
 ====== Dump einer Datenbank als sql file ====== ====== Dump einer Datenbank als sql file ======
  
-  - Login auf postgres Server +  * * - Login auf postgres ServerLogin auf postgres Server- Login auf postgres ServerLogin auf postgres Server 
-  - sudo nach postgres +  * * - sudo nach postgressudo nach postgres- sudo nach postgressudo nach postgres 
-  - Wechsel ins Home Dir von postgres (wg. Schreibrechten für sql File)+  * * Wechsel ins Home Dir von postgres (wg. Schreibrechten für sql File)Wechsel ins Home Dir von postgres (wg. Schreibrechten für sql File)- Wechsel ins Home Dir von postgres (wg. Schreibrechten für sql File)Wechsel ins Home Dir von postgres (wg. Schreibrechten für sql File)
  
 <code> <code>
Zeile 196: Zeile 251:
  
 </code> </code>
- 
-====== Alte Daten löschen ====== 
- 
-Datenbank 
- 
-<code> 
-drop DATABASE onlyoffice; 
- 
-</code> 
- 
  
 ===== Templates und UTF8 encoding ===== ===== Templates und UTF8 encoding =====
  • postgres.1744973338.txt.gz
  • Zuletzt geändert: 18/04/2025 - 10:48
  • von admin