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

pojedyncze cudzysłowy pojawiają się wokół wartości po uruchomieniu kopiowania w postgresie 9.2

To, co opisujesz w swoim pytaniu, oczywiście nie jest tym, co się naprawdę dzieje. COPY nie powiedzie się próba zaimportowania literałów ciągów ze zbędnymi pojedynczymi cudzysłowami do date kolumna.

Aby pozbyć się zbędnych cytatów, zaimportuj do tabeli tymczasowej z text kolumna, a następnie INSERT INTO tabela docelowa przycinająca cudzysłowy:

CREATE TEMP TABLE wtmp (
   city text
 , temp_lo int
 , temp_hi int
 , prcp real
 , date text  -- note how I use text here.
);

COPY wtmp FROM '~aviad/postsgres/playground/weather.txt';

INSERT INTO weather (city, temp_lo, temp_hi, prcp, date)
SELECT city, temp_lo, temp_hi, prcp, trim(date, '''')::date
FROM   wtmp
-- ORDER BY ?
;

Tabela tymczasowa jest automatycznie usuwana pod koniec sesji.

Słowa zastrzeżone jako identyfikatory

Widzę, że skopiowałeś przykład z instrukcji. Oto głęboki link do bieżącego podręcznika .

Prawdą jest, że ten przykład w instrukcji jest niefortunny. Radziłbym nie używać zastrzeżonych słów, takich jak date jako nazwy kolumn. Jak widać tutaj date jest słowem zastrzeżonym w każdym standardzie SQL. Można go używać w Postgresie i widzę, jak kusi prosty przykład. Ale to nie czyni tego dobrym pomysłem. Ogólnie rzecz biorąc, powinieneś mieć zwyczaj unikania słowa zastrzeżone jako identyfikatory. Prowadzi to do mylących komunikatów o błędach i niepotrzebnie niezgodnego kodu SQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd niepoprawna składnia wejściowa dla liczby całkowitej dla liczby niebędącej liczbą całkowitą?

  2. Formularz wyszukiwania nie kieruje do właściwego kontrolera w Rails 5.1

  3. Jak mogę zamówić za pomocą funkcji niestandardowej w SQLAlchemy?

  4. Zrozumienie wydajności zapytań PostgreSQL

  5. Funkcje metody tworzenia kopii zapasowych PostgreSQL w AWS S3