Häufige Probleme mit dem Postgres-Knoten#
Hier sind einige häufige Fehler und Probleme mit dem Postgres-Knoten und Schritte zur Lösung oder Fehlerbehebung.
SQL IN
-Gruppen mit Parametern dynamisch füllen#
In Postgres können Sie das SQL IN
-Vergleichskonstrukt verwenden, um Vergleiche zwischen Wertgruppen anzustellen:
1 |
|
Während Sie in Localmind Automate Ausdrücke in Ihrer Abfrage verwenden können, um die Werte in einer IN
-Gruppe dynamisch zu füllen, bietet die Kombination mit Abfrageparametern zusätzlichen Schutz, indem die Eingabe automatisch bereinigt wird.
So erstellen Sie eine IN
-Gruppenabfrage mit Abfrageparametern:
- Setzen Sie die Operation auf Abfrage ausführen.
- Wählen Sie in den Optionen die Option Abfrageparameter.
- Verwenden Sie einen Ausdruck, um ein Array aus den Eingabedaten auszuwählen. Zum Beispiel
{{ $json.input_shirt_sizes }}
. - Schreiben Sie im Parameter Abfrage Ihre Abfrage mit dem
IN
-Konstrukt mit einem leeren Klammerpaar. Zum Beispiel:1
SELECT color, shirt_size FROM shirts WHERE shirt_size IN ();
- Verwenden Sie innerhalb der
IN
-Klammern einen Ausdruck, um dynamisch indexbasierte Platzhalter (wie$1
,$2
und$3
) für die Anzahl der Elemente in Ihrem Abfrageparameter-Array zu erstellen. Sie können dies tun, indem Sie jeden Array-Index um eins erhöhen, da die Platzhaltervariablen 1-indiziert sind:1
SELECT color, shirt_size FROM shirts WHERE shirt_size IN ({{ $json.input_shirt_sizes.map((i, pos) => "$" + (pos+1)).join(', ') }});
Mit dieser Technik erstellt Localmind Automate automatisch die korrekte Anzahl von Platzhaltern für vorbereitete Anweisungen für die IN
-Werte entsprechend der Anzahl der Elemente in Ihrem Array.
Arbeiten mit Zeitstempeln und Zeitzonen#
Um Komplikationen bei der Interpretation von Zeitstempel- und Zeitzonendaten durch Localmind Automate und Postgres zu vermeiden, befolgen Sie diese allgemeinen Tipps:
- Verwenden Sie UTC beim Speichern und Übergeben von Datumsangaben: Die Verwendung von UTC hilft, Verwirrung über Zeitzonenkonvertierungen bei der Konvertierung von Datumsangaben zwischen verschiedenen Darstellungen und Systemen zu vermeiden.
- Verwenden Sie das ISO-8601-Format: Das ISO-8601-Format kodiert den Tag des Monats, den Monat, das Jahr, die Stunde, die Minuten und die Sekunden in einer standardisierten Zeichenkette. Localmind Automate übergibt Datumsangaben zwischen Knoten als Zeichenketten und verwendet Luxon zum Parsen von Datumsangaben. Wenn Sie explizit in ISO 8601 umwandeln müssen, können Sie den Datum & Uhrzeit-Knoten und ein benutzerdefiniertes Format verwenden, das auf die Zeichenkette
yyyy-MM-dd'T'HH:mm:ss
gesetzt ist.