Невозможно скопировать в таблицу postgresql с меткой clock_timestamp по умолчанию

#postgresql

#postgresql

Вопрос:

В моей таблице есть столбец NOT NULL с именем ‘created’ с CLOCK_TIMESTAMP ПО УМОЛЧАНИЮ(). В моем CSV-файле, из которого я копирую намеренно, нет столбца с именем «создано», потому что я хочу, чтобы база данных использовала для него значение по умолчанию. Моя команда копирования:

 copy table_name from '/local/path/to/file.csv' delimiter ',' CSV HEADER
  

Ошибка, которую я получаю,:

 missing data for column "created_"
  

В документации PostgreSQL говорится: «Если в таблице есть какие-либо столбцы, которых нет в списке столбцов, COPY FROM вставит значения по умолчанию для этих столбцов».

Спасибо за любую помощь

Ответ №1:

Подсказка находится в «которых нет в списке столбцов«.

Для этого необходимо указать «список столбцов» и исключить значение по умолчанию:

 copy table_name (column1, column2, ...) from '/local/path/to/file.csv' delimiter ',' CSV HEADER
  

Комментарии:

1. Это сделало свое дело — я думал, что ключевое слово HEADER просто указало ему использовать столбцы заголовка CSV в качестве моего списка. Возможно, я отправлю запрос на уточнение документации…