PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

единични кавички се появяват около стойността след изпълнение на копие в postgre 9.2

Това, което описвате във въпроса си, очевидно не е това, което наистина се случва. COPY ще се провали при опит за импортиране на низови литерали с излишни единични кавички в date колона.

За да се отървете от излишните кавички, импортирайте във временна таблица с text колона, след което INSERT INTO целевата таблица изрязва кавичките:

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 ?
;

Временната таблица се премахва автоматично в края на вашата сесия.

Запазени думи като идентификатори

Виждам, че сте копирали примера от ръководството. Ето дълбока връзка към текущото ръководство .

Въпреки че е правилен, този пример в ръководството е жалък. Бих посъветвал да не използвате запазени думи като date като имена на колони. Както можете да видите тук date е запазена дума във всеки SQL стандарт. Разрешено е да се използва в Postgres и виждам колко е изкушаващо за прост пример. Но това не го прави добра идея. Като цяло трябва да имате навика да избягвате запазени думи като идентификатори. Това води до объркващи съобщения за грешка и ненужно несъвместим 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. Скрити характеристики на PostgreSQL

  2. Как да прекъсна RPostgresql заявка в R

  3. Postgis + boost::geometry + C++

  4. Изберете данни за 15 минутни прозорци - PostgreSQL

  5. Опит за промяна на ограничение в PostgreSQL