Obraz dekoracyjny

Import CSV do PostgreSQL w n8n bez duplikatów i błędów

Jak importować CSV do PostgreSQL w n8n: odczyt, walidacja, upsert po kluczu, ochrona przed duplikatami, duże pliki z COPY i najczęstsze błędy importu.

Import CSV do PostgreSQL w n8n bez duplikatów i błędów wymaga trzech rzeczy: odczytu pliku z właściwym separatorem i kodowaniem, walidacji danych przed zapisem oraz zapisu z aktualizacją po kluczu unikalnym zamiast zwykłego wstawiania. Workflow może pobierać pliki z maila, FTP/SFTP, Google Drive lub adresu URL i działać według harmonogramu. Przy bardzo dużych plikach lepiej użyć natywnego COPY PostgreSQL do tabeli tymczasowej, a n8n niech steruje procesem i raportuje wynik.

Workflow krok po kroku

  1. Wyzwalacz: nowy plik na SFTP lub w Drive, mail z załącznikiem albo harmonogram.
  2. Odczyt: Extract from File w trybie CSV, z ustawionym separatorem.
  3. Walidacja: wymagane pola, formaty dat i liczb, dozwolone wartości. Błędne wiersze trafiają do osobnej listy.
  4. Zapis: węzeł Postgres z operacją Insert or Update (upsert) po kolumnie z ograniczeniem UNIQUE.
  5. Raport: liczba zapisanych, zaktualizowanych i odrzuconych wierszy, wysłana do właściciela procesu.
Plik z tabelą połączony strzałkami z filtrem i bazą danych, z boczną ścieżką dla dwóch identycznych wierszy.

Jak uniknąć duplikatów

  • Zdefiniuj w tabeli klucz unikalny (np. numer zamówienia, SKU, ID zewnętrzne).
  • Zapisuj przez upsert: INSERT ... ON CONFLICT (klucz) DO UPDATE, co robi operacja Insert or Update w n8n.
  • Zapamiętuj przetworzone pliki (nazwa, suma kontrolna), żeby nie wczytać tego samego pliku dwa razy.

Duże pliki

Przy setkach tysięcy wierszy przetwarzanie wiersz po wierszu jest wolne. Lepszy wzorzec: plik trafia na serwer bazy, COPY ładuje go do tabeli tymczasowej, a jedno zapytanie SQL przenosi dane do tabeli docelowej z upsertem. n8n uruchamia te kroki i obsługuje błędy.

Najczęstsze błędy

BłądPrzyczyna
invalid input syntax for type numeric
Przecinek dziesiętny lub spacje w liczbach
date/time field value out of range
Format daty DD.MM.RRRR zamiast RRRR-MM-DD
duplicate key value violates unique constraint
Zwykły insert zamiast upsertu
Krzaczki w tekstach
Kodowanie pliku inne niż UTF-8

Podobne procesy: import CSV do MySQL, import CSV do Google Sheets i eksport SQL do CSV.

Importy danych z Codeless

Zobacz usługę automatyzacji procesów albo umów bezpłatną konsultację.

Potrzebujesz pomocy z automatyzacją?

Skontaktuj się z nami i porozmawiajmy o Twoich potrzebach. Pomożemy Ci wybrać najlepsze rozwiązanie.

Umów konsultację

Często zadawane pytania

Znajdź odpowiedzi na pytania związane z tym artykułem

Zdefiniuj klucz unikalny i zapisuj przez upsert (INSERT ... ON CONFLICT DO UPDATE), w n8n operacją Insert or Update węzła Postgres.

Masz pytania o ten artykuł?

Skontaktuj się z nami, a odpowiemy na wszystkie Twoje wątpliwości

Bezpłatna konsultacja
Odpowiedź w ciągu 24h
Spersonalizowana wycena

Możesz również skontaktować się z nami bezpośrednio: