2009/8/25 Valdomiro <[email protected]>: > 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 este for o comando exato que você está usando então existe um problema no valor do campo strcep. Quando você coloca 15018-000 o resultado da operação (subtração) será o valor 15018 que, convertido para varchar, será incluido ou alterado em sua tabela. Use '15018-000' que é a forma correta para um campo texto. > > > > > > 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 > Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
