Zum Hauptinhalt springen

SQL Query

Beta

Diese Node befindet sich in der Beta-Phase und kann sich ändern.

Die SQL-Node führt SQL-Abfragen an Datenbanken (MariaDB, Microsoft SQL Server, MySQL, PostgreSQL) aus und speichert die Abfrageergebnisse optional in einer Variable, um sie in Ihrem Flow weiterzuverarbeiten.

Basiskonfiguration

  • Datenbanktyp: Wählen Sie Ihr Datenbanksystem (unterstützt werden: MariaDB, Microsoft SQL Server, MySQL oder PostgreSQL).
  • Datenbank Host: Geben Sie den Hostnamen oder die IP-Adresse Ihres Datenbankservers ein (z. B. localhost, db.example.com).
    • Der Datenbank-Host muss über den angegebenen Datenbank-Port für die Control Unit erreichbar sein, auf der RobFlow ausgeführt wird.
  • Datenbank Port: Geben Sie den Datenbank-Port an (Standard: 3306 für MySQL/MariaDB, 5432 für PostgreSQL).
  • Datenbank Benutzer: Geben Sie den Benutzernamen für die Datenbankauthentifizierung ein.
  • Datenbank Passwort: Geben Sie das Passwort für die Datenbankauthentifizierung ein.
  • Datenbankname: Geben Sie den Namen der Datenbank an, mit der Sie sich verbinden möchten.

SQL Query

Geben Sie Ihren auszuführenden SQL-Query ein. Die SQL-Node unterstützt SELECT-, INSERT-, UPDATE- und DELETE-Operationen:

  • SELECT: Daten aus Tabellen abrufen (z. B. SELECT * FROM inventory WHERE id = 25)
  • INSERT: Neuen Befehl hinzufügen (z. B. INSERT INTO inventory (name, quantity) VALUES ('Cogs', '10'))
  • AKTUALISIEREN: Ändern Sie vorhandene Datensätze (z. B. UPDATE inventory SET quantity = 15 WHERE name = 'Cogs')
  • DELETE: Datensätze entfernen (z. B. DELETE FROM inventory WHERE id = 5)

Query-Ergebnis speichern

Bei SELECT-Queries können Sie die Ergebnisse optional in einer Variable speichern:

  • Ergebnisvariable: Wählen Sie eine String-Variable aus, um die Abfrageergebnisse im JSON-Format zu speichern.
  • Ergebnisverarbeitung: Optional können Sie bestimmte Daten aus den Abfrageergebnissen mithilfe der Klammernotation extrahieren.

Ergebnisverarbeitung

Abfrageergebnisse werden automatisch in das JSON-Format konvertiert. Sie können den Inhalt der Variablen eingrenzen, indem Sie einen bestimmten Teil der JSON-Antwort mithilfe der Klammernotation angeben.

Beispiel: queryResult[0]["name"]

  • queryResult: Die Variable, in der die Abfrageergebnisse gespeichert werden sollen (sollte mit der zuvor ausgewählten Ergebnisvariablen übereinstimmen)
  • [0]: Erste Zeile im Array mit den Abfrageergebnissen
  • ["name"]: Der Wert der Spalte „Name“ aus dieser Zeile

Node Ausgänge

Die SQL-Node verfügt über zwei Ausgänge für die Flow-Steuerung:

  • Erfolg: Wird ausgelöst, wenn die Abfrage erfolgreich ausgeführt wurde.
  • Ausfall: Wird ausgelöst, wenn die DB-Verbindung oder die Abfrage fehlschlägt (Verbindungs- oder Authentifizierungsprobleme, Syntaxfehler, Verstöße gegen Einschränkungen usw.).

Beispiel für die Benutzung

Daten aus einer Datenbank abrufen

  • Datenbanktyp: PostgreSQL
  • Host: localhost
  • Port: 5432
  • Datenbank: myapp
  • Abfrage: SELECT * FROM inventory WHERE id = 42
  • Ergebnisvariable: inventoryList
  • Ergebnisverarbeitung: inventoryList[0]["quantity"] (Speichert den “quantity” Wert der ersten Zeile, die von der Abfrage zurückgegeben wird, in der ausgewählten Variablen)

Einfügen von Daten in eine Datenbank

  • Datenbanktyp: MySQL
  • Host: db.example.com
  • Port: 3306
  • Datenbank: Lager
  • Abfrage: INSERT INTO products (name, price, stock) VALUES ('BoltA5', 19.99, 100)

Tipps

  • Stellen Sie eine Verbindung zur Datenbank mit einem Benutzer her, der über die minimal erforderlichen Berechtigungen verfügt (z. B. schreibgeschützt für SELECT-Abfragen).
  • Seien Sie vorsichtig bei der Verwendung von Befehlen, die Daten in Ihrer Datenbank ändern (INSERT, UPDATE, DELETE), da diese Änderungen dauerhaft sind.
  • Testen Sie Ihre SQL-Abfrage in einem Datenbank-Client, bevor Sie sie in der SQL-Node verwenden.
  • Verwenden Sie die Ergebnisverarbeitung, um nur die benötigten Daten zu extrahieren und so die Variablengröße zu reduzieren.
  • Abfrageergebnisse werden automatisch von datenbankspezifischen Typen (DECIMAL, DATETIME) in JSON-kompatible Formate konvertiert.
  • Die Node zeigt während der Ausführung den Status „Abfrage wird ausgeführt...“, „Abfrage abgeschlossen“ oder „Abfrage fehlgeschlagen“ an.
  • Verwenden Sie die Erfolgs-/Fehlerausgaben, um Fehler elegant zu behandeln (z. B. Wiederholungslogik oder Fehlerbenachrichtigungen).
  • Datenbankverbindungen werden nach der Ausführung der Abfrage automatisch geschlossen, um Ressourcenlecks zu verhindern.