Importo essas tabelas

 

CREATE TABLE cep

(

  intcodigoestado int4 NOT NULL,

  intcodigocidade int4 NOT NULL,

  intcodigorua int4 NOT NULL,

  intcodigobairro int4 NOT NULL,

  strcep varchar(20) NOT NULL,

  intcep5digitos int4 NOT NULL,

  intcodigobairro2 int4 NOT NULL,

  intcodigopais int4,

  intcodigoempresa int4,

  CONSTRAINT pk_cep PRIMARY KEY (intcodigoestado, intcodigocidade,
intcodigorua, intcodigobairro, strcep, intcep5digitos, intcodigobairro2),

  CONSTRAINT fk_cep_ref_200_rua FOREIGN KEY (intcodigorua)

      REFERENCES rua (intcodigorua) MATCH SIMPLE

      ON UPDATE RESTRICT ON DELETE RESTRICT,

  CONSTRAINT fk_cep_ref_203_bairro FOREIGN KEY (intcodigobairro)

      REFERENCES bairro (intcodigobairro) MATCH SIMPLE

      ON UPDATE RESTRICT ON DELETE RESTRICT,

  CONSTRAINT fk_cep_ref_56510_cidade FOREIGN KEY (intcodigocidade)

      REFERENCES cidade (intcodigocidade) MATCH SIMPLE

      ON UPDATE RESTRICT ON DELETE RESTRICT,

  CONSTRAINT fk_cep_ref_56529_estado FOREIGN KEY (intcodigoestado)

      REFERENCES estado (intcodigoestado) MATCH SIMPLE

      ON UPDATE RESTRICT ON DELETE RESTRICT,

  CONSTRAINT fk_cep_reference_pais FOREIGN KEY (intcodigopais)

      REFERENCES pais (intcodigopais) MATCH SIMPLE

      ON UPDATE RESTRICT ON DELETE RESTRICT

) 

WITHOUT OIDS;

 

E

 

 

 

CREATE TABLE endereco_cliente

(

  intcodigocliente int4 NOT NULL,

  intseqenderecocliente int4 NOT NULL,

  intcodigoempresa int4,

  intcodigotipoendereco int4,

  intcodigoestado int4,

  intcodigocidade int4,

  intcodigorua int4,

  intcodigobairro int4,

  strcep varchar(20),

  intcep5digitos int4,

  intcodigobairro2 int4,

  strtnumeroenderecocliente varchar(10),

  strcomplementoenderecocliente varchar(80),

  strcaixapostalenderecocliente varchar(6),

  CONSTRAINT pk_endereco_cliente PRIMARY KEY (intcodigocliente,
intseqenderecocliente),

  CONSTRAINT fk_endereco_ref_27206_cliente FOREIGN KEY (intcodigocliente)

      REFERENCES cliente (intcodigocliente) MATCH SIMPLE

      ON UPDATE RESTRICT ON DELETE RESTRICT,

  CONSTRAINT fk_endereco_ref_27210_tipo_end FOREIGN KEY
(intcodigotipoendereco)

      REFERENCES tipo_endereco (intcodigotipoendereco) MATCH SIMPLE

      ON UPDATE RESTRICT ON DELETE RESTRICT,

  CONSTRAINT fk_endereco_ref_64010_cep FOREIGN KEY (intcodigoestado,
intcodigocidade, intcodigorua, intcodigobairro, strcep, intcep5digitos,
intcodigobairro2)

      REFERENCES cep (intcodigoestado, intcodigocidade, intcodigorua,
intcodigobairro, strcep, intcep5digitos, intcodigobairro2) MATCH SIMPLE

      ON UPDATE RESTRICT ON DELETE RESTRICT,

  CONSTRAINT fk_endereco_refempfor_empresa2 FOREIGN KEY (intcodigoempresa)

      REFERENCES empresa (intcodigoempresa) MATCH SIMPLE

      ON UPDATE RESTRICT ON DELETE RESTRICT

) 

WITHOUT OIDS;

 

 

Depois de importado se eu for na tabela CEP e cadastrar novo CEP, e for em
endereco_cliente e alterar um endereço já existente da o seguinte erro de
SQL

 

 

Insert or update on table “endereço_cliente” violates foreing key constraint
“fk_endereco_ref_64010_cep” key 

(intcodigoestado, intcodigocidade, intcodigorua, intcodigobairro, strcep,
intcep5digitos, intcodigobairro2) = (1,4,6,4,15108-000,15090,0)

 

 

Se dropar essa base e importar novamente, executar um bkp e um restore o
erro não ocorre

Não sei se é porque estou usando o comando COPY “nome_tabela” FROM
'arquivo_de_dados.txt';

Não sei se ele desliga alguma coisa, já tentei da reindex database e
vaccumdb mas não adiantou

 

[]´s

Valdomiro

 

 

De: [email protected]
[mailto:[email protected]] Em nome de Fabrízio de
Royes Mello
Enviada em: terça-feira, 25 de agosto de 2009 14:56
Para: Comunidade PostgreSQL Brasileira
Assunto: Re: [pgbr-geral] Problemas com Importação de Dados

 

 

2009/8/25 Valdomiro <[email protected]>

Olá pessoal estou fazendo a importação de dados e usando o comando copy
from, aparentemente 

tudo esta indo corretamente, mas após a importação qdo altero registros de
determinadas tabelas, 

aparecem erros de foreign key, mas as chaves estrangeiras estão la, os
registros do relacionamento 

das chaves estão todos la, já tentei dar um REINDEX DATABASE e um VACCUMDB e
nada adiantou,

 mas quando que faço um backup pelo PG_DUMP e depois faço um RESTORE, tudo
volta a funcionar 

corretamente, estou tendo que importar os dados depois fazer um backup e um
restore da base 

para funcionar , gostaria de saber se alguém conhece algum procedimento que
eu possa fazer para 

evitar o backup e restore da base quando os registros forem importados.

 


Você poderia enviar um exemplo mais prático do teu problema, com as
estruturas envolvidas, comandos executados e erros apresentados...

Assim poderemos analisar melhor teu problema...


Cordialmente,
-- 
Fabrízio de Royes Mello
>> Blog sobre PostgreSQL: http://fabriziomello.blogspot.com

 

__________ Information from ESET NOD32 Antivirus, version of virus signature
database 4367 (20090825) __________

 

The message was checked by ESET NOD32 Antivirus.

 

http://www.eset.com

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a