PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak w PostgreSQL wstawić dane za pomocą polecenia COPY?

COPY tbl FROM STDIN;

nie jest obsługiwany przez pgAdmin.
Otrzymujesz zwykły błąd składni, ponieważ Postgres pobiera dane jako kod SQL.

Cztery możliwe rozwiązania:

1. Użyj wielowierszowego INSERT zamiast tego:

INSERT INTO beer(name, tags, alcohol, brewery, id, brewery_id, image)
VALUES 
  ('Bons Voeux', 'blonde', 9.5, 'Brasserie Dupont', 250, 130, 'generic.png')
, ('Boerke Blond', 'blonde', 6.8, 'Brouwerij Angerik', 233, 287 'generic.png')
;

Zwróć uwagę na inną składnię (SQL) dla wartości jako ciągów lub literałów numerycznych.

Możesz wygenerować dane za pomocą pg_dump za pomocą --inserts . Powiązane:

  • Eksportuj określone wiersze z tabeli PostgreSQL jako skrypt INSERT SQL

2. Lub wywołaj swój skrypt w wierszu poleceń za pomocą psql . Jako użytkownik systemu postgres :

psql -f beer.sql -U my_login_role -d db_name 

Baza danych (-d ) i rola logowania (-U dla „Użytkownika”) można pominąć, jeśli wartości domyślne są w porządku. Przykłady składni:

  • Utwórz bazę danych Postgres za pomocą pliku wsadowego z [szablon], [kodowanie], [właściciel] i plik .sql

Upewnij się, że istnieje znacznik końca danych (\. ) dla domyślnego text format. (Masz to.) Instrukcja:

Koniec danych może być reprezentowany przez pojedynczą linię zawierającą kropkę justbackslash (\. ). Znacznik końca danych nie jest konieczny przy odczycie z pliku, ponieważ koniec pliku służy doskonale; jest to potrzebne tylko podczas kopiowania danych do lub z aplikacji klienckich przy użyciu protokołu klienta przed wersją 3.0.

3. Lub przenieś swoje dane do osobnego pliku na serwerze , powiedz 'beer_data.csv' i użyj COPY .. FROM 'filename' w twoim skrypcie:

COPY beer (name, tags, alcohol, brewery, id, brewery_id, image)
FROM '/path/to/beer_data.csv';

Co działa tak czy inaczej. Potrzebujesz jednak uprawnień superużytkownika. Instrukcja:

[...] COPY nazywanie pliku lub polecenia jest dozwolone tylko dla superużytkowników bazy danych lub użytkowników, którym przyznano jedną z domyślnych rólpg_read_server_files , pg_write_server_files lubpg_execute_server_program , ponieważ umożliwia odczytywanie lub zapisywanie dowolnego pliku lub uruchamianie programu, do którego serwer ma uprawnienia dostępu.

(pg_read_server_files , pg_write_server_files i pg_execute_server_program są nowe w Postgres 11.)

4. Lub przeczytaj plik lokalny dla klienta za pomocą meta-polecenia psql \copy . Zobacz:

  • Jak zaktualizować wybrane wiersze wartościami z pliku CSV w Postgresie?
  • Jak używać \copy w postgresql z pgadmin4


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 sposoby na wyświetlenie listy wszystkich procedur składowanych, które odwołują się do tabeli w PostgreSQL

  2. Używanie JSONB w PostgreSQL:Jak skutecznie przechowywać i indeksować dane JSON w PostgreSQL

  3. Jak działa Ceiling() w PostgreSQL

  4. Replikacja strumieniowa PostgreSQL — szczegółowe informacje

  5. Jak uniknąć zapętlania się wywołań wyzwalaczy w PostgreSQL 9.2.1?