Сценарий
У меня есть база данных postgresql, содержащая список вариантов продукта, который, однако, заполняется автоматически, без номеров деталей. Я экспортировал таблицу, чтобы запустить некоторые формулы для генерации номеров деталей для каждого варианта продукта. Это дало мне таблицу, содержащую соответствующий идентификатор записи и связанный номер детали.
Чего я пытаюсь достичь
Теперь, когда у меня есть таблица с отсутствующей информацией, как мне вернуть эту информацию обратно в таблицу postgresql?
Пример данных из таблицы Postgresql [product_product]
id create_date weight default_code product_templ_id ...
1 2016-12-15 18:57 0 000-000000-000 1 ...
2 2016-12-16 19:00 0 000-000000-000 2 ...
3 2016-12-16 20:42 0 000-000000-000 31 ...
4 2016-12-16 20:43 0 000-000000-000 31 ...
5 2016-12-16 20:44 0 000-000000-000 31 ...
6 2016-12-16 20:45 0 31 ...
... ................ ... .............. 31 ...
1603 2016-12-16 21:51 0 31 ...
1604 2016-12-16 21:52 0 31 ...
Примерный список рассчитанных номеров деталей
id default_code
6 000-000000-000
... ..............
1604 000-000000-000
Что я пробовал
Ну, я установил ODBC-соединение с базой данных, связав таблицу в MS Access 2010. Я отфильтровал по полю product_templ_id
и отсортировал по id
, чтобы соответствовать тому, что было в моей электронной таблице Excel. Затем я скопировал номера деталей из столбца default_code
и попытался вставить их в начальную точку, но получил сообщение о том, что я пытался вставить слишком много информации. Я понял, Access пытался вставить содержимое буфера обмена в одну ячейку. Не то поведение, на которое я надеялся.
Какой маршрут лучше?
Этот конкретный продукт имеет 1440 вариантов, каждый со своим собственным номером детали и спецификацией. Я действительно не хочу тратить свое время на генерацию всего этого построчно. Я всегда говорю людям, что данные - это данные, и вы можете делать с данными все что угодно. Это просто вопрос разработки как.
--РЕДАКТИРОВАТЬ--
Я могу экспортировать свою таблицу из pgAdmin, но по какой-то причине, когда я пытаюсь импортировать, ничего не происходит.
В результате я попробовал следующую команду:
COPY product_product (default_code) from '/csv/file/location/file.csv' CSV HEADER delimiter ';' null '/n';
В результате чего:
ERROR: extra data after last expected column
CONTEXT: COPY product_product, line 2: "203;000-000000-000"
Я думаю, хорошо, я упоминаю одно поле, но мой CSV имеет два поля. Это потому, что я хочу убедиться, что импортированное поле default_code
связано с правильной записью.
Далее я попробовал:
COPY product_product FROM '/csv/file/location/file.csv' CSV HEADER delimiter ';' null '\n';
В результате чего:
ERROR: duplicate key value violates unique constraint "product_product_pkey"
DETAIL: Key (id)=(2) already exists.
Так что теперь, я думаю, я мог бы также бросить стол и перестроить его. К сожалению, с этой таблицей настроены зависимости, поэтому ее нельзя удалить.
Если бы я знал, как редактировать значение записи в postgresql, я мог бы написать скрипт для генерации необходимых команд для редактирования всех 1440 записей соответственно.