Kopiëren
Tweet
Wat is kopiëren
Postgres wordt geleverd met verschillende geweldige hulpprogramma’s om je gegevens te verplaatsen. De meest voor de hand liggende zijn pg_dump en pg_restore voor natuurlijk database backups en restores. Een gelijkaardig hulpprogramma dat veel minder besproken wordt, maar even waardevol is, is Postgres’s kopieer hulpprogramma. Copy staat je toe om gegevens te kopiëren van en naar tabellen in je database. Het ondersteunt verschillende modi, waaronder:
- binair
- tab delimited
- csv delimited
Of het nu gaat om het in bulk laden van gegevens voor testen, het doen van wat lichte ETL, of gewoon het pakken van een data-extract om naar iemand te sturen, het is een hulpprogramma dat elke ontwikkelaar op een gegeven moment zal willen gebruiken.
Copy in actie
Alle werknemers extraheren naar een bestand met tabbladen:
\copy (SELECT * FROM employees) TO '~/employees.tsv';
Alle werknemers extraheren naar een bestand met csv-afmetingen:
\copy (SELECT * FROM employees) TO '~/employees.csv' WITH (FORMAT CSV);
Alle werknemers uitpakken naar een binair bestand (let op de aanhalingstekens rond het woord binair):
\copy (SELECT * FROM employees) TO '~/employees.dat' WITH (FORMAT "Binary");
En voor het laden van gegevens in een tabel het equivalent voor elk van de bovenstaande:
\copy employees FROM '~/employees.tsv';\copy employees FROM '~/employees.csv' WITH CSV;\copy employees FROM '~/employees.dat' WITH BINARY;