O cenário
Eu tenho um banco de dados postgresql contendo uma lista de variantes de produtos, que foi preenchida automaticamente, sem os números de peça. Eu exportei a tabela para executar algumas fórmulas para gerar os números de peça para cada variante do produto. Isso me deu uma tabela contendo o ID do registro relevante e o número de parte associado.
O que estou tentando realizar
Agora que tenho minha tabela com as informações que estão faltando, como obtenho essas informações novamente na tabela postgresql?
Dados de amostra da tabela 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 ...
Lista de exemplos de números de peça calculados
id default_code
6 000-000000-000
... ..............
1604 000-000000-000
O que eu tentei
Bem, eu configurei uma conexão ODBC para o banco de dados, vinculando a tabela no MS Access 2010. Filtrei para o campo product_templ_id
e classifiquei por id
, para corresponder ao que eu tinha na planilha do Excel. Em seguida, copiei os números de peça da coluna default_code
e tentei colar no ponto inicial, mas recebi um erro informando que eu estava tentando colar muita informação. Eu entendo, o Access estava tentando colar o conteúdo da área de transferência na única célula. Não o comportamento pelo qual eu estava esperando.
Qual é o melhor caminho?
Este produto em particular tem 1440 variantes, cada uma com seu próprio número de peça e BOM. Eu realmente não quero gastar meu tempo gerando tudo isso linha por linha. Estou sempre dizendo às pessoas que dados são dados e você pode fazer qualquer coisa com dados. É só uma questão de descobrir como.
- EDITAR
Eu posso exportar minha tabela do pgAdmin, mas, por algum motivo, quando tento importar, nada acontece.
Como resultado, tentei o seguinte comando:
COPY product_product (default_code) from '/csv/file/location/file.csv' CSV HEADER delimiter ';' null '/n';
O que resultou em:
ERROR: extra data after last expected column
CONTEXT: COPY product_product, line 2: "203;000-000000-000"
Eu acho, ok, eu menciono um campo, mas meu csv tem dois campos. Isso porque quero garantir que o campo default_code
importado esteja associado ao registro adequado.
Em seguida, tentei:
COPY product_product FROM '/csv/file/location/file.csv' CSV HEADER delimiter ';' null '\n';
Como resultado:
ERROR: duplicate key value violates unique constraint "product_product_pkey"
DETAIL: Key (id)=(2) already exists.
Então, agora, acho que também posso largar a mesa e reconstruí-la. Infelizmente, existem dependências de configuração com esta tabela, por isso não pode ser descartado.
Se eu soubesse como editar um valor de registro no postgresql, eu poderia escrever um script para gerar os comandos necessários para editar todos os 1440 registros adequadamente.