Olá pessoal,

Estou tentando importar um arquivo CSV.

Na minha tabela destino eu tenho uma CONSTRAINT:

ALTER TABLE dm.billables
  ADD CONSTRAINT uc_billable_code_unique_per_account
UNIQUE("account_id", "code");

O meu arquivo CSV contém dados duplicados no campo "code"

'Interpreting Normal/AH''Interpreting Normal/AH''Interpreting
Normal/AH''Interpreting Normal/AH''Interpreting
Normal/AH4''Interpreting Normal/AH''Interpreting
Normal/AH6''Interpreting Normal/AH'

Então quando tento importar, obviamente recebo o erro a baixo:

ERROR:  duplicate key value violates unique constraint
"uc_billable_code_unique_per_account"
DETAIL:  Key ("account_id", "code")=(32152, 'Interpreting Normal/AH')
already exists.

Comando usado: (Criei uma tabela temporária)

INSERT INTO dm.billables (SELECT billable_id, code, info FROM temptable)

Copiando direto do arquivo CSV:

COPY dm.billables (code, info, unit_cost, unit_price, account_id) FROM
'/var/lib/pgsql/sql/lucas/charge_test.csv' WITH DELIMITER ',' QUOTE
'"' CSV HEADER;

Então tendo em mente o erro, eu presumo que tenho duas opcões:

*1 -* DROP CONSTRAINT - Importo os dados e gero um campo random mas unique
na coluna "code"

*2 -* Ao importar para a nova tabela já faco isso gerando um UUID novo para
a coluna "code"


* Não tem problemas em alterar o campo "code" - Já que o mesmo possuí link
> com outra tabela..

** Não posso alterar o meu insert data - Já que hoje o PHP já faz este
> servico de gerar um value random mas unique - Ou seja.. o cliente pode ter
> campos duplicados na coluna "code" porque é linkada com outra tabela. Mas
> na coluna code há um campo do tipo:
> code_321525694417ad6b5f - *Gerado pelo PHP*


Como posso fazer isto tudo?


*COMO ESTÁ AGORA:*

COLUMN CODE                                |       COLUMN
INFO'Interpreting Normal/AH'
Travel1'Interpreting Normal/AH1'
trip2'Interpreting Normal/AH2'
test897'Interpreting Normal/AH3'
trip11'Interpreting Normal/AH4'                            trave1

*COMO DEVE FICAR:*

COLUMN CODE                                |       COLUMN INFO
code_32152563bdc6453645                            Travel1
code_32152563bdc4566hhh                            trip2
code_32152563b654645uuu                           test897
code_32152563bdc4546uui                            trip11
code_32152563bdc4db11aa                            trave1
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a