Zum Hauptinhalt springen

Datenbankabfrage

Eine SQL-Anweisung auf einer Ihrer Datenbanken ausführen und das Ergebnis übernehmen.

Funktionsweise​

Der Schritt führt eine SQL-Anweisung aus – lesend oder schreibend – und schreibt die Ergebniszeilen in den Speicher. Ein späterer Schritt kann die Zeilen durchlaufen, sie einer KI zur Auswertung geben, in eine Datei schreiben oder abhängig davon reagieren.

Die Verbindung wird im Schritt selbst eingerichtet. Wissensbasen vom Typ Datenbank (live) sind etwas anderes: Sie geben Agenten und KI-Modellen lesenden Zugriff als Informationsquelle und werden von Workflow-Schritten nicht verwendet.

Werte aus dem Lauf setzen Sie mit Platzhaltern {memory://key} ein. Sie werden der Datenbank als Parameter übergeben und nie in den SQL-Text eingefügt – ein Wert wie x'); DROP TABLE orders; -- wird genau als dieser Text gespeichert und kann die Anweisung nicht verändern.

Einstellungen​

FeldWas es steuertErforderlichHinweise
Datenbanktyp„PostgreSQL“ (postgres), „MySQL / MariaDB“ (mysql), „Microsoft SQL Server“ (mssql) oder „SQLite (Datei auf dem Server oder libSQL-Adresse)“ (sqlite).erforderlich
Server / PortWo die Datenbank läuft.erforderlich außer bei SQLiteStandard-Ports 5432 / 3306 / 1433.
Benutzer / PasswortAnmeldung an der Datenbank.je nach DatenbankDas Passwort wird verschlüsselt gespeichert.
DatenbankName der Datenbank.erforderlichSQLite: absoluter Dateipfad auf dem Server oder eine libSQL-Adresse.
Verschlüsselte Verbindung (TLS)Verbindung per TLS.optionalStandardmäßig aus, bei SQL Server an.
SQL-AnweisungDie auszuführende Anweisung.erforderlichEine Anweisung. Werte aus dem Speicher als {memory://key} oder {memory://key/field}.
Max. ZeilenObergrenze für die zurückgegebenen Zeilen.optionalStandard: 10.000; größere Ergebnisse werden abgeschnitten, mit einer Warnung im Protokoll des Laufs.
Ergebnis (Zeilen)Wo die Zeilen abgelegt werden.optionalEine Liste; jede Zeile ist ein Objekt mit den Spaltennamen als Schlüssel. Leer bei Anweisungen, die keine Zeilen zurückgeben.
Betroffene ZeilenAnzahl der Zeilen, die INSERT, UPDATE oder DELETE geschrieben hat.optional
FehlermeldungWo der Fehler abgelegt wird, wenn die Anweisung fehlschlägt.optionalIst das Feld gesetzt, stoppt eine fehlschlagende Anweisung den Lauf nicht – die Meldung landet hier und die nächsten Schritte laufen weiter.

Platzhalter in der Anweisung​

SchreibweiseWird zuBeispiel
{memory://key}einem ParameterWHERE order_no = {memory://order_no}
'{memory://key}' (das ganze Literal)einem Parameter – die Anführungszeichen entfallenINSERT INTO notes VALUES ('{memory://text}')
innerhalb eines längeren Texts, z. B. '%{memory://q}%'abgelehntden Text in SQL zusammensetzen: LIKE '%' || {memory://q} || '%'
als Tabellen- oder SpaltennameabgelehntNamen direkt in die Anweisung schreiben

Listen und Objekte werden als JSON-Text übergeben; ein fehlender Wert wird als NULL übergeben.

In die Datenbank schreiben​

Der Schritt schreibt mit den Rechten des Datenbankbenutzers, den Sie eintragen. Geben Sie diesem Benutzer nur die Rechte, die der Workflow braucht – zum Beispiel INSERT auf eine Tabelle – und verwenden Sie für Schritte, die nur lesen, einen eigenen Benutzer mit reinen Leserechten.

Beispielszenario​

Kunden nachschlagen. Ein Webhook-Trigger empfängt eine Bestellnummer. Ein Schritt „Datenbankabfrage“ führt SELECT c.name, c.email FROM orders o JOIN customers c ON c.id = o.customer_id WHERE o.no = {memory://order_no} aus. Das Ergebnis geht an eine KI-Aktion, die eine persönliche E-Mail entwirft; der letzte Schritt verschickt sie.

Empfehlungen​

  • ✅ Verwenden Sie für Schritte, die nur lesen, einen eigenen Benutzer mit reinen Leserechten.
  • ✅ Begrenzen Sie die Ergebnisgröße mit LIMIT (oder TOP). Max. Zeilen schneidet größere Ergebnisse ab; das Protokoll des Laufs zeigt dann eine Warnung.
  • ✅ Verwenden Sie Fehlermeldung zusammen mit einer Bedingung am nächsten Schritt, wenn der Workflow eine fehlschlagende Abfrage selbst behandeln soll.
  • ⚠️ Der Umgang mit Zeitzonen hängt von der Datenbank ab. Wenn Sie Datumswerte vergleichen, speichern Sie sie in UTC.
  • ❌ Führen Sie in produktiven Workflows keine DDL-Anweisungen (DROP, ALTER, …) über diesen Schritt aus. Schemaänderungen gehören in geeignete Migrationswerkzeuge.

Nächste Schritte​

  • Läufe, die durch neue oder geänderte Zeilen starten: Datenbank-Überwachung.
  • Agenten in einer Datenbank nachschlagen lassen: eine Wissensbasis vom Typ Datenbank (live).
  • Daten an externe HTTP-APIs senden: HTTP-Anfrage ausführen.