Команда psql copy не будет правильно интерпретировать значения NULL - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь скопировать значения из CSV (с заголовками) в таблицу.Я посмотрел на этот ответ , в котором говорится, что нужно указать значение NULL, но, похоже, он не оказывает на меня никакого влияния.Вот что у меня есть:

CREATE TABLE stops
(
  stop_id           text PRIMARY KEY,
  --stop_code         text NULL,
  stop_name         text NOT NULL,
  --stop_desc         text NULL,
  stop_lat          double precision NOT NULL,
  stop_lon          double precision NOT NULL,
  zone_id           integer NULL,
  stop_url          text NULL,
  location_type     boolean NULL,
  parent_station    text NULL
);

\copy stops from './stops.txt' with csv header NULL AS ''

Я также пытался использовать символ \N, например, так:

\copy stops from './stops.txt' with csv header NULL AS '\N'

Но, похоже, это не дает эффекта.

Я также пытался поэкспериментировать с найденным решением здесь , которое выглядит следующим образом:

\copy agency from './agency.txt' WITH (FORMAT csv header, FORCE_NULL(zone_id))

Но это, кажется, приводит к синтаксической ошибке в части csv_header.

Версия 9.6.

Это выдержка из CSV:

stop_id,stop_name,stop_lat,stop_lon,zone_id,stop_url,location_type,parent_station
"de:07334:1714:1:1","Wörth Alte Bahnmeisterei","49.048742345982","8.26622538039577","","","","Parent1714"
"de:07334:1714:1:2","Wörth Alte Bahnmeisterei","49.0484420719247","8.26673742010779","","","","Parent1714"
"de:07334:1721:1:1","Maximiliansau Eisenbahnstraße","49.0373071007148","8.29789997731824","","","","Parent1721"
"de:07334:1721:2:2","Maximiliansau Eisenbahnstraße","49.0371363175998","8.29896897250649","","","","Parent1721"

1 Ответ

0 голосов
/ 29 сентября 2018

Но, похоже, это приводит к синтаксической ошибке в части csv_header.

Поставьте запятую после csv:

\copy agency from './agency.txt' WITH (FORMAT csv, HEADER, FORCE_NULL(zone_id,location_type))

Видимо, FORCE_NULL требуется длянетекстовые столбцы, при использовании пустой строки для указания NULL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...