2012-04-10 4 views
2

Ich möchte eine Reihe von Abfragen (mehrere SQL-Updates) als einzelnes Element speichern, das ich mit pgAdmin3 (PostgreSQL 9.1) ausführen kann.Wie speichere ich eine Reihe von Abfragen in PostgreSQL, damit ich sie einfach wieder ausführen kann?

Ich weiß, dass ich einzelne SELECTS als Ansichten speichern kann, aber wie wäre es mit mehreren UPDATE-Abfragen?

Beispiel:

BEGIN; 
UPDATE ...; 
UPDATE ...; 
COMMIT; 

Update: Was ich suche, ist eine Schritt-für-Schritt-Anleitung, um eine gespeicherte Prozedur mit der GUI des Hinzufügen, nicht eine SQL-Abfrage ausgeführt wird, die es erstellt.

Bisher stieß ich auf zwei Probleme mit "New function...": Der Rückgabetyp ist erforderlich und festgestellt, dass NULL nicht akzeptabel ist, so versuchte integer. Stellen Sie auch den Typ auf SQL, aber ich weiß nicht, was genau in der SQL-Registerkarte zu schreiben, was auch immer ich versuche, die Schaltfläche OK ist immer noch deaktiviert und die Statusleiste sagt: Bitte geben Sie Funktionsquellcode.

Antwort

2

Kennen Sie oder haben Sie versucht, gespeicherte Prozedur (gut, gespeicherte Prozedur-ähnliche Funktionen)?

http://www.postgresql.org/docs/9.1/interactive/plpgsql-structure.html

es nennen

select <name of function>(<param1>, <param2>) as result; 
+0

Genau, aber wie kann ich es hinzufügen, ausführen und aktualisieren? Kannst du ein grundlegendes Beispiel geben? – sorin

+0

Lassen Sie mich erklären: Ich habe versucht, eine Funktion mit SQL-Sprache hinzuzufügen, aber es fragt mich nach einem Rückgabetyp. – sorin

+1

Beispiele für die Erstellung sind in der Seite vorhanden, die ich angegeben habe (CREATE FUNCTION bla bla). Wenn die Funktion nichts zurückgeben soll, können Sie CREATE FUNCTION blabla (Parameter) RETURNS void als $$ verwenden. Um es zu starten, siehe meine Bearbeitung. Um es zu aktualisieren: Es muss irgendwo in der Baumansicht von pgAdmin, nein (ist nicht hier) angezeigt werden? –

1

Hier ist die fehlende Führung für eine grundlegende gespeicherte SQL-Prozedur, eine, die 1.

  • direkt auf Funktionen klicken und wählen zurückgibt Neue Funktion ...
  • komplett name als my_procedure, return type als integer, language als sql
  • wählen Definition Registerkarte und schreiben SELECT 1;
  • getan

Es wäre schön zu wissen, wenn Sie Abfragen erstellen können, die nichts zurückgeben.

+0

Danke. Hinweis - Es sieht so aus, als ob Sie "SELECT 1;" in die Registerkarte "Code" setzen möchten. – nealmcb

Verwandte Themen