sql >> Database >  >> RDS >> PostgreSQL

COPY-functie in PostgreSQL

Het lijkt erop dat je in de war bent door de bestandspadnotatie van Linux versus Windows. Wat je daar hebt, is een Linux-pad dat verankerd is aan root. Windows gebruikt stationsletters, die u net zo goed kunt opgeven als u op Windows werkt.

Als u Windows-notatie gebruikt, zorg er dan voor dat u backslashes moet ontsnappen als u standard_conforming_strings =aan - wat de standaard is in Postgres 9.1 of hoger, maar niet in oudere versies. Vind ik leuk:

COPY data_table from E'C:\\tmp\\outputdata.csv' WITH ...

Met standard_conforming_strings =aan je kunt gewoon schrijven:

COPY data_table from 'C:\tmp\outputdata.csv' WITH ...

Merk op dat een PostgreSQL Windows-server ook de standaard padnotatie begrijpt met slashes in plaats van backslashes.

Voor SQL KOPIE VAN / NAAR je kunt elk pad gebruiken dat de eigenaar van de server verwerkt (postgres standaard) toestemming heeft om te lezen/schrijven.

Voor de \copy meta-opdracht van de psql-client zijn de machtigingen van de huidige lokale gebruiker van toepassing.



  1. MySQL met Sum en Case

  2. 1 of 0 retourneren in specifieke SQL-query

  3. DBA - Hoe alle databaseprocessen op SQL Server te beëindigen?

  4. Kan ik de databaselaag van Laravel zelfstandig gebruiken?