13 Punkte von xguru 2021-11-10 | 4 Kommentare | Auf WhatsApp teilen
  • Anzahl der bei Insert on Conflict (Upsert) geänderten/hinzugefügten Zeilen ermitteln: xmax

  • Berechtigungen für bestimmte Spalten vergeben

  • Multi-Pattern-Matching: SIMILAR TO oder ~-Reguläre Ausdrücke

  • Den aktuellen Sequenzwert ermitteln, ohne ihn zu erhöhen: pg_sequence_last_value()

  • Multi-Line-SQL zusammen mit \COPY verwenden: TEMPORARY VIEW oder COPY und \g nutzen

  • Das Setzen von Werten für automatisch generierte Schlüssel verhindern: Beim Erstellen der Tabelle GENERATED ALWAYS angeben (statt GENERATED BY DEFAULT)

  • Pivot-Tabellen erstellen: pandas.pivot_table, \crosstabview oder die Erweiterung tablefunc verwenden

  • Dollar Quoting

→ Alles zwischen $$ und $$ wird als String erkannt

→ Tags im Inneren wie $JSON$ / $function$ können verwendet werden

→ Mit angehängtem ::jsonb lässt sich schnell ein jsonb-Objekt erzeugen

  • Kommentare an DB-Objekten anbringen: COMMENT ON TABLE/COLUMN; mit Dollar Quoting lassen sich auch lange String-Beschreibungen hinzufügen

→ Schreiben: COMMENT ON TABLE sale IS 'Sales made in the system';

→ Anzeigen: \d+ sale

  • Den Verlauf je DB separat protokollieren

\set HISTFILE ~/.psql_history- :DBNAME

  • Autovervollständigung in Großbuchstaben ausgeben: \set COMP_KEYWORD_CASE upper

  • Sleep einfügen: pg_sleep(Sekunden), pg_sleep_for('4 minutes 14 seconds')

  • Erste/letzte Zeile einer Gruppe ohne Subquery holen: DISTINCT ON (Gruppenspalte)

  • UUID ohne uuid-ossp-Erweiterung erzeugen: gen_random_uuid() erzeugt eine Version-4-UUID

  • Reproduzierbare Zufallsdaten erzeugen: Mit setseed() denselben Seed setzen

  • Bedingungen hinzufügen, ohne bestehende Daten sofort zu validieren: Beim ALTER zuerst nur mit NOT VALID die Bedingung hinzufügen und die bestehenden Daten später separat mit ALTER VALIDATE prüfen

  • Eine Oracle-Synonym-ähnliche Funktion nutzen: search_path ändern (nützlich bei Zero-Downtime-Migrationen)

  • Überlappende Ranges finden: Operator OVERLAPS

4 Kommentare

 
galadbran 2021-11-11

Gibt es bei GeekNews nicht ein bisschen zu viele News über Postgres?! (Nur ein Scherz.)

Auch unser Produkt nutzt hauptsächlich pg, daher können wir dafür nur dankbar sein. :)

 
xguru 2021-11-11

Wahrscheinlich liegt es daran, dass Postgres gerade total angesagt ist..!?

 
nallwhy 2021-11-10

Postgres ist das Beste.

 
roxie 2021-11-10

Sehe ich genauso.