Articles of postgresql

Wählen Sie eine abgeschnittene characterfolge aus Postgres aus

Ich habe einige große varchar Werte in Postgres, die ich varchar und woanders varchar möchte. Der Ort, den sie verwenden wird, verwendet VARCHAR(4095) so dass ich nur höchstens 4095 Bytes brauche (ich denke, das ist Bytes) und einige dieser VARCHARS sind ziemlich groß, so eine performancesoptimization wäre, eine abgeschnittene Version von ihnen auszuwählen. Wie kann […]

Ist es immer eine gute Idee, ein Array als Feldwert zu speichern oder Array-Werte als datasätze zu speichern?

In meiner Anwendung habe ich "Artikel" (ähnlich wie Posts / Tweets / Artikel), die mit beschreibenden vordefinierten Tags versehen sind: zB "schwierig", "einfach", "rot", "blau", "geschäftlich" usw Diese verfügbaren Tags werden in einer Tabelle gespeichert und als "Tags" bezeichnet, die alle verfügbaren Tags enthalten. Jeder Artikel kann mit mehreren Tags versehen werden, die über eine […]

SQL verbindet beliebige Informationen zu einer gemischten list

Ich habe eine list von Artikeln verschiedener Typen mit ihrer jeweiligen ID. Die Artikel werden nach einer Gruppen-ID gruppiert: Type | ID | GroupID ———————– Type1 | 1234 | 1 Type1 | 2345 | 1 Type2 | 1234 | 1 Type3 | 1234 | 1 Type1 | 1234 | 2 Ich habe separate Tabellen für […]

SQL-functionen können keinen Typtrigger zurückgeben

Ich benutze PostgreSQL mit pgAdmin und ich kann keine Trigger-function erhalten. Soweit mir bekannt ist, können Sie in PostgreSQL den Typ trigger zurückgeben. CREATE OR REPLACE FUNCTION validate_Cat() RETURNS TRIGGER AS $BODY$ BEGIN — CODE here END; $BODY$ LANGUAGE SQL; CREATE TRIGGER validate_Cat AFTER INSERT OR UPDATE ON Category FOR EACH ROW execute procedure validate_Cat();

Gibt den Nullwert als '0' in group by-Klausel, postgresql, zurück

Ich nutze count und group by herauszufinden, wie viele Abonnenten jeden Tag einen Einkauf tätigen: select count(s.email) from subscriptions s, orders o where o.subcription_id=s.id group by s.created_at Ergebnisse: created_at count —————— 04-04-2011 1 06-04-2011 2 07-04-2011 1 10-04-2011 5 11-04-2011 9 Ich möchte jedoch immer noch, dass die Nullzeilen als '0' zurückgegeben werden. Wie mache […]

Verwenden einer einzigen SQL-korrelierten Unterabfrage, um zwei Spalten zu erhalten

Mein Problem wird durch die folgende Abfrage dargestellt: SELECT b.row_id, bx, by, b.something, (SELECT ax FROM my_table a WHERE a.row_id = (b.row_id – 1), a.something != 42 ) AS source_x, (SELECT ay FROM my_table a WHERE a.row_id = (b.row_id – 1), a.something != 42 ) AS source_y FROM my_table b Ich verwende dieselbe Unterabfrageanweisung zweimal, […]

Was ist der beste path, um One-to-Many- oder Many-to-Many-Beziehungen in PostgreSQL zu speichern?

Ich bin derzeit dabei, einen Open-Source-Chat (AJAX-Chat) in ein anderes Projekt zu integrieren. Jetzt erhält der Chat standardmäßig seine gültigen Benutzer und gültigen Kanäle aus einer file, aber offensichtlich ist dies nicht ideal, wenn Sie eine database mit sich ständig ändernden Benutzern haben. Also möchte ich es so machen, dass der Chat Benutzer- und Kanalinformationen […]

Wie prüfe ich eine if-statement in PostgreSQL?

Frage: Ich möchte eine if-statement in PostgreSQL testing: IF (SELECT COUNT(*) FROM pg_language WHERE lanname = 'plpgsql') > 0 THEN PRINT 'Good' ELSE PRINT 'Bad' END IF; Jetzt triggers dies einen Fehler bei IF aus. Soweit ich das gelesen habe, liegt das daran, dass ich plpgsql verwenden muss, um if, print und variables verwenden zu […]

Vermeidung von Doppelzählungen in GROUP BY

Hier sind die grundlegenden Eingeweide meines Schemas und Problems: http://sqlfiddle.com/#!1/72ec9/4/0 Beachten Sie, dass sich die Periodentabelle auf einen variablen timebereich beziehen kann – es könnte sich um eine ganze Saison handeln, es könnte sich um ein paar Spiele oder ein Spiel handeln. Für ein bestimmtes Team und Jahr stehen alle Periodenzeilen für exklusive timebereiche. Ich […]

wie man die max () Abfrage beschleunigt

In PostgreSQL 8.4 Abfrage explain analyze SELECT max( kuupaev||kellaaeg ) as res from ALGSA where laonr=1 and kuupaev <='9999-12-31' and kuupaev||kellaaeg <= '9999-12-3123 59' Dauert 3 Sekunden zum Ausführen: "Aggregate (cost=3164.49..3164.50 rows=1 width=10) (actual time=2714.269..2714.270 rows=1 loops=1)" " -> Seq Scan on algsa (cost=0.00..3110.04 rows=21778 width=10) (actual time=0.105..1418.743 rows=70708 loops=1)" " Filter: ((kuupaev <= '9999-12-31'::date) […]