Articles of postgresql

PostgreSQL – Iterate über Ergebnisse der Abfrage

Ich erstelle eine function in pgsql Skriptsprache, und was ich in diesem Punkt tun möchte, ist über die Ergebnisse einer Abfrage zu iterieren und für jede Zeile etwas bestimmtes tun. Mein aktueller Versuch ist der folgende, wobei temprow als temprow user_data.users%rowtype . Der betreffende Code ist der folgende: FOR temprow IN SELECT * FROM user_data.users […]

Wie schreibe ich function für optionale Parameter in Postgresql?

Meine Anforderung ist, optionale Parameter zu einer function zu schreiben. Parameter sind optional, manchmal werde ich hinzufügen, oder ich werde Parameter nicht übergeben, um zu funktionieren. Kann mir jemand helfen, wie man function schreibt. Ich schreibe wie select * from test where field3 in ('value1','value2') and ($1 is null or field1 = $1) and ($2 […]

Löschen Sie das Element in einem Array-Feld PostgreSQL

Ich baue eine Art dictionary-App und ich habe eine Tabelle zum memoryn von Wörtern wie unten: id | surface_form | examples ———————————————————————– 1 | sounds | {"It sounds as though you really do believe that", | | "A different bell begins to sound midnight"} Wo surface_form vom Typ CHARACTER VARYING und examples sind ein Array-Feld […]

Gruppe-bei-Frage in Postgresql

Angenommen, ich habe eine Tabelle mit 'Bestellungen' erstellt als: CREATE TABLE orders (id SERIAL, customerID INTEGER, timestamp BIGINT, PRIMARY KEY(id)); Timestamp ist der UNIX-timestempel. Jetzt möchte ich die IDs der neuesten Aufträge für jeden Kunden auswählen. Wie eine Aussicht wäre schön. jedoch die folgende Aussage CREATE VIEW lastOrders AS SELECT id, customerID, MAX(timestamp) FROM orders […]

Hinzufügen eines Schemas zum Pfad in postgresql

Ich bin der process des Verschiebens von Anwendungen von allen im öffentlichen Schema auf jedes mit einem eigenen Schema. Für jede Anwendung habe ich ein kleines Skript, das das Schema erstellt und dann die Tabellen, functionen usw. für dieses Schema erstellt. Gibt es trotzdem ein automatisches Hinzufügen eines neu erstellten Schemas zum Suchpfad? Zur time […]

Eine Tabelle mit einer Tabelle verknüpfen, wenn Bedingung1 wahr ist, und mit einer anderen Tabelle, wenn Bedingung1 falsch ist?

Ich habe folgende Tabellen: User_Group id group_id group_type ———————— 1 100 A 1 100 B 2 101 B 2 102 A Group_A id name ——— 100 A 101 B 102 C Group_B id name ——— 100 D 101 E 102 F Ich möchte die Gruppennamen aller Benutzer (mit array.agg() ). Wir müssen den Gruppennamen von […]

Wählen Sie nur den neuesten Wert für jeden Bezeichner in einer Tabelle aus

Ich habe einen Tisch, der so aussieht: identifier | value | tstamp ———–+——-+——————— abc | 21 | 2014-01-05 05:24:31 xyz | 16 | 2014-01-11 03:32:04 sdf | 11 | 2014-02-06 07:04:24 qwe | 24 | 2014-02-14 02:12:07 abc | 23 | 2014-02-17 08:45:24 sdf | 15 | 2014-03-21 11:23:17 xyz | 19 | 2014-03-27 09:52:37 […]

Postgres eindeutiger mehrspaltiger Index für Join-Tabelle

In Postgres habe ich eine Viele-zu-Viele-Join-Tabelle, die ich zu A) hinzufügen möchte, um die Performance zu boost (B) und B) die Eindeutigkeit zu erzwingen. Beispielsweise: a_id | b_id 1 | 2 <- okay 1 | 3 <- okay 2 | 3 <- okay 1 | 3 <- not okay (same as row 2) Ist es […]

Eine characterfolge in Postgresql mit rpad auffüllen, ohne sie abzuschneiden

Wie kann ich mit Postgresql 8.4 eine characterfolge mit Leerzeichen rechtsbündig auffüllen, ohne sie zu beschneiden, wenn sie zu lang ist? Das Problem ist, dass rpad die characterfolge abschneidet, wenn sie tatsächlich länger ist als die Anzahl der zu rpad character. Beispiel: SELECT rpad('foo', 5); ==> 'foo ' — fine SELECT rpad('foo', 2); ==> 'fo' […]

IF-function in PostgreSQL wie in MySQL

Ich versuche, die IF function von MySQL in PostgreSQL zu replizieren. Die Syntax der IF function lautet IF(condition, return_if_true, return_if_false) Ich habe folgende Formel erstellt: CREATE OR REPLACE FUNCTION if(boolean, anyelement, anyelement) RETURNS anyelement AS $$ BEGIN CASE WHEN ($1) THEN RETURN ($2); ELSE RETURN ($3); END CASE; EXCEPTION WHEN division_by_zero THEN RETURN ($3); END; […]