Ich möchte einen Trigger, dass, wenn eine Tabelle, nennen wir es A, aktualisiert wird, es zählt die Anzahl der Zeilen auf A und aktualisiert einen Wert in einer anderen Tabelle B, wie kann es getan werden?PGSQL: Trigger Zähler von Zeilen einer anderen Tabelle
Antwort
Es gibt volle Probe hier: http://www.postgresql.org/docs/9.3/static/plpgsql-trigger.html
Um gespeicherte Prozedur erstellen Sie bieten sollen: FUNCTION your_function_name CREATE (parameters_goes_here) RETURNS returned_data_type_or_trigger_for_triggers AS string_value_with_body;
Normalerweise Semikolon endet Befehl, so dass Sie nicht Körper eingeben können. Andere Datenbanken ändern das Befehlstrennzeichen. PG erlaubt spezielle String Delimiter Dollarzeichen. Bitte lesen Sie mehr unter diesem Thema: What are '$$' used for in PL/pgSQL
Zurück zu den Schaltern - sie sind knifflig. Angenommen, Sie zählen Beiträge in Themen. Verschieben von Posts zwischen zwei Themen. Da sie Zähler haben, werden Themen aktualisiert. Das bedeutet wiederum Update-Sperre. Was passiert, wenn zwei gleichzeitige Posts zwischen zwei Themen verschoben werden? Der erste Zug sperrt sein Basisthema und versucht es mit einem anderen. Und das gleiche passiert dem anderen. : D Um damit umzugehen, müssen Sie sicherstellen, dass beide mit dem gleichen versuchen. Zum Beispiel sortieren Themen nach ID und wählen Sie zuerst von ihnen.
, dass die Probe war ich folgende, ich habe diesen Code CREATE OR FUNCTION contar_formar() RETURNS auslösen AS $ BODY BEGIN $ UPDATE equipos SET numeromiembros = (SELECT COUNT (*) FROM formar) WHERE idequipo REPLACE = (SELECT equipo FROM formar); ENDE; $ BODY $ SPRACHE plpgsql VOLATILE COST 100; ALTER FUNKTION contar_formar() EIGENTÜMER NACH Postgres; aber es funktioniert nicht, wenn ich versuche, etwas in formar einzufügen, heißt es ist ein Fehler aufgetreten: ERROR: Steuerende Triggerprozedur ohne CONTEXT RETURN erreicht: PL/pgSQL Funktion contar_formar() –
gelöst, Ich musste RETURN NULL vor dem Ende hinzufügen, danke für Ihre Hilfe! –
- 1. SQL-Trigger zum Aktualisieren einer anderen Tabelle
- 2. Gruppierung von Zeilen aus einer MySQL-Tabelle in einer anderen
- 3. Vergleichen Sie Zeilen in einer Tabelle - hängt von anderen Spalte
- 4. Laravel von Datenbanktabelle zu einer anderen Tabelle 1Mill Zeilen, langsam
- 5. Masse eine Tabelle aus Zeilen aus einer anderen Tabelle
- 6. Get num von ZEILEN in anderen Tabelle
- 7. Insert Trigger zum Aktualisieren einer anderen Tabelle mit PostgreSQL
- 8. Activiti: Zugriff auf Timer-Trigger-Zähler erforderlich
- 9. Legen Sie alle Zeilen aus einer Tabelle in einer anderen
- 10. Einfügen von NEW. * Von einem generischen Trigger mit EXECUTE in PL/pgsql
- 11. Kopieren von Zeilen in einer Tabelle in die gleiche Tabelle mit einer anderen ID
- 12. Auswahl von Zeilen aus einer Tabelle, die nicht in einer anderen Tabelle mit h2 sind
- 13. Postgresql Trigger zum Einfügen von Zeilen
- 14. Tabelle von Wert aus einer anderen Tabelle
- 15. PostgreSQL-Trigger und Zeilen aktualisiert
- 16. Zugriff auf gelöschte Zeilen der übergeordneten Tabelle in Kind-Trigger
- 17. leere Zeilen zurückgeben, wenn nicht in einer anderen Tabelle gefunden
- 18. MySQL - Sammeln verwandten Zeilen aus einer anderen Tabelle
- 19. mehrere Zeilen aus einer anderen Tabelle aktualisieren sqlite3
- 20. PL/pgSQL Cursor für Zeilen mod 3
- 21. Zeilen erhalten, die nicht in einer anderen Tabelle übereinstimmen
- 22. SELECT .. INTO zum Erstellen einer Tabelle in PL/pgSQL
- 23. SQL Zeilen löschen basierend auf einer anderen Tabelle
- 24. Wählen Sie Zeilen in einer Tabelle aus, in der id gleich einer anderen ID in einer anderen Tabelle ist
- 25. Zähler in Azure-Tabelle inkrementieren
- 26. PHP Adodb Dump von einer Tabelle zur anderen
- 27. SQL Update Text von einer anderen Tabelle
- 28. Erstellen Sie einen Trigger, die eine Spalte auf einer Tabelle aktualisiert, wenn eine Spalte in einer anderen Tabelle aktualisiert wird
- 29. Wie lösche Zeilen in einer Teradata-Tabelle, die nicht in einer anderen Tabelle sind?
- 30. versuchen, alle Zeilen in einer Tabelle zurückzugeben und die Anzahl der Zeilen mit passender ID aus einer anderen Tabelle zählen
Was haben Sie bis jetzt versucht? –
Ich bin sehr neu in pgsql, auch sehr neu bei der Erstellung von Datenbanken, ich habe versucht, einen Trigger nach der postgresql.org Dokumentation zu erstellen, aber ich habe nicht sehr klar, wie man eine Prozedur erstellt. –