Articles of postgresql

Gibt Zeilen einer Tabelle zurück, die sich in einem UPDATE tatsächlich geändert hat

Mit Postgres kann ich eine update-statement ausführen und die vom commend betroffenen Zeilen zurückgeben. UPDATE accounts SET status = merge_accounts.status, field1 = merge_accounts.field1, field2 = merge_accounts.field2, etc. FROM merge_accounts WHERE merge_accounts.uid =accounts.uid RETURNING accounts.* Dies wird mir eine list aller datasätze geben, die der WHERE Klausel entsprechen, jedoch nicht sagen, welche Zeilen tatsächlich von der […]

PostgreSQL: Löschen von Zeilen, die von einer anderen Tabelle referenziert werden

Ich habe zwei Tabellen, object und object_data, mit objectreferenz object_data nach Fremdschlüssel (die Relation ist 1: 1). Für eine Reihe von objecten muss ich ihre object_data-referenceen auf Null setzen und die entsprechenden object_data-Zeilen löschen, wie folgt: DELETE FROM object_data WHERE id IN ( SELECT object_data_id FROM object WHERE … ); UPDATE object SET object_data_id = […]

PostgreSQL Bug in windowsfunktion auf Partition?

Ich habe eine Tabelle t , die folgende data hat: name | n ————+— school | 4 hotel | 2 restaurant | 6 school | 3 school | 5 hotel | 1 Wenn ich die folgende Abfrage ausführe, ist das Ergebnis etwas seltsam. select name, n, first_value(n) over (partition by name order by n desc), […]

In PostgreSQL erfordert eine Fremdschlüsseleinschränkung nur REFERENCES?

Ich habe die Dokumente zu PostgreSQL-Einschränkungen gelesen, weil ich sehen wollte, wie man Fremdschlüssel definiert. In ihren Beispielen CREATE TABLE orders ( order_id integer PRIMARY KEY, product_no integer REFERENCES products (product_no), quantity integer ); Ich sehe keinen FOREIGN KEY irgendwo; In einigen anderen Stack-Überlauf-Fragen ( wie zum Beispiel "on delete cascade" -Einschränkungen hinzuzufügen ) habe […]

UPDATE-statement mit mehreren Joins in PostgreSQL

Ich versuche, eine Tabelle mit dem Namen incode_warrants zu aktualisieren und setze den warn_docket_no auf viol_docket_no aus der Tabelle incode_violations . Ich habe die folgende SQL-Abfrage in Postgres 9.3, aber wenn es ausgetriggers wird, erhalte ich den folgenden Fehler: Error : ERROR: relation "iw" does not exist LINE 1: update iw Ich bin eher eine […]

SQL – TIPP zum Verweisen auf eine Spalte

Ich bin sehr Anfänger bei SQL, also tut es mir leid, wenn diese Frage primitiv ist. Ich habe gerade begonnen, dem Tutorial von http://www.w3schools.com zu folgen, also habe ich die "Northwind" -database heruntergeladen, um zu versuchen, daran zu arbeiten und die pgAdmin 3-Konsole zu benutzen, um auf die DB zuzugreifen. Ich habe gerade einen einfachen […]

Wie man zwei PostgreSQL-Spalten zu einem durch Klammern getrennten Array zusammenfasst

Ich möchte zwei Spalten mit einer Group-by-Abfrage verketten, die zu einem Array führt, das durch Klammern getrennt wird. Ich weiß, dass diese Frage mit dieser Frage zusammenhängt, aber wie üblich ist mein Anwendungsfall etwas anders. Ein einfaches Beispiel (auch als SQL Fiddle ). Derzeit gibt meine Abfrage Folgendes zurück: ID XY 3 0.5 2.71 3 […]

Operator existiert nicht: Intervall> Ganzzahl

Ich habe eine Abfrage, die auf Postgresql 7.4, aber nicht auf Postgresql 8.3 mit derselben database funktioniert. Abfrage: SELECT * FROM login_session WHERE (now()-modified) > timeout; Ruft den folgenden Fehler ab: ERROR: operator does not exist: interval > integer LINE 1: …ELECT * FROM login_session WHERE (now()-modified) > timeout … ^ HINT: No operator matches […]

SQL-Filterung nach mehreren Elementen in derselben Spalte

Ich habe zwei Tabellen in SQL, eine mit einem Projekt und eine mit Kategorien, zu denen Projekte gehören, dh der JOIN würde ungefähr so ​​aussehen: Project | Category ——–+——— Foo | Apple Foo | Banana Foo | Carrot Bar | Apple Bar | Carrot Qux | Apple Qux | Banana (Strings werden natürlich durch IDs […]

Wie überprüfe ich, ob ein Wert eine ganze Zahl mit plpgsql ist?

Ich verwende diese function in einem Trigger: CREATE OR REPLACE FUNCTION xx() RETURNS trigger AS $xx$ BEGIN INSERT INTO my_log (x, y, z) VALUES (NEW.x, NEW.y, current_setting('myvar.user')); RETURN NULL; END; $xx$ LANGUAGE plpgsql; jetzt würde ich gerne überprüfen, ob 'myvar.user' eine gültige ganze Zahl ist, und wenn nicht, machen Sie eine andere INSERT-statement. Wie würde […]