Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

hilariopio

Firebird - Problema na criação de chaves estrangeiras

Recommended Posts

Boa tarde!

 

Estou tentando criar a tabela clientfisicos, que armazenará os dados dos clientes pessoas físicas na minha base de dados com o seguinte código:

 

 

create table clientfisicos

(

cfis_codigo integer not null,

cfis_nome varchar(45) not null,

cfis_datcadast date not null,

cfis_datnasc date not null,

cfis_cpf integer not null,

cfis_numident varchar(20),

cfis_orgexpident integer,

cfis_ufexpident integer,

cfis_nacionalid integer not null,

cfis_munnasc integer not null,

cfis_ufnasc integer not null,

cfis_estcivil integer not null,

cfis_tipologradouro integer not null,

cfis_nomelogradouro integer not null,

cfis_numero varchar(7),

cfis_complemento varchar(25),

cfis_bairro integer not null,

cfis_cep integer not null,

cfis_municipio integer not null,

cfis_uf integer not null,

cfis_foneres integer,

cfis_fonecom integer,

cfis_fonecel integer,

cfis_fonecont integer,

cfis_nomecont varchar(25),

cfis_email varchar(50),

cfis_obs varchar(100),

constraint pk_clientfisicos primary key (cfis_codigo),

constraint fk_orgexpident foreign key (cfis_orgexpident) references orgexpedidores (oexp_codigo),

constraint fk_ufexpident foreign key (cfis_ufexpident) references ufs (uf_codigo),

constraint fk_nacionalid foreign key (cfis_nacionalid) references nacionalidades (nac_codigo),

constraint fk_munnasc foreign key (cfis_munnasc) references municipios (mun_codigo),

constraint fk_ufnasc foreign key (cfis_ufnasc) references municipios (mun_codigo),

constraint fk_estcivil foreign key (cfis_estcivil) references estadoscivis (eciv_codigo),

constraint fk_tipologradouro foreign key (cfis_tipologradouro) references logradouros (log_codigo),

constraint fk_nomelogradouro foreign key (cfis_nomelogradouro) references logradouros (log_codigo),

constraint fk_bairro foreign key (cfis_bairro) references bairros (bair_codigo),

constraint fk_municipio foreign key (cfis_municipio) references municipios (mun_codigo),

constraint fk_uf foreign key (cfis_uf) references municipios (mun_codigo),

constraint uk_clientfisicos unique (cfis_cpf, cfis_email)

);

 

E dá o seguinte erro:

 

 

ISC ERROR CODE:335544351
ISC ERROR MESSAGE:
unsuccessful metadata update
STORE RDB$INDICES failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_5"
Statement: create table clientfisicos
(
cfis_codigo integer not null,
cfis_nome varchar(45) not null,
cfis_datcadast date not null,
cfis_datnasc date not null,
cfis_cpf integer not null,
cfis_numident varchar(20),
cfis_orgexpident integer,
cfis_ufexpident integer,
cfis_nacionalid integer not null,
cfis_munnasc integer not null,
cfis_ufnasc integer not null,
cfis_estcivil integer not null,
cfis_tipologradouro integer not null,
cfis_nomelogradouro integer not null,
cfis_numero varchar(7),
cfis_complemento varchar(25),
cfis_bairro integer not null,
cfis_cep integer not null,
cfis_municipio integer not null,
cfis_uf integer not null,
cfis_foneres integer,
cfis_fonecom integer,
cfis_fonecel integer,
cfis_fonecont integer,
cfis_nomecont varchar(25),
cfis_email varchar(50),
cfis_obs varchar(100),
constraint pk_clientfisicos primary key (cfis_codigo),
constraint fk_orgexpident foreign key (cfis_orgexpident) references orgexpedidores (oexp_codigo),
constraint fk_ufexpident foreign key (cfis_ufexpident) references ufs (uf_codigo),
constraint fk_nacionalid foreign key (cfis_nacionalid) references nacionalidades (nac_codigo),
constraint fk_munnasc foreign key (cfis_munnasc) references municipios (mun_codigo),
constraint fk_ufnasc foreign key (cfis_ufnasc) references municipios (mun_codigo),
constraint fk_estcivil foreign key (cfis_estcivil) references estadoscivis (eciv_codigo),
constraint fk_tipologradouro foreign key (cfis_tipologradouro) references logradouros (log_codigo),
constraint fk_nomelogradouro foreign key (cfis_nomelogradouro) references logradouros (log_codigo),
constraint fk_bairro foreign key (cfis_bairro) references bairros (bair_codigo),
constraint fk_municipio foreign key (cfis_municipio) references municipios (mun_codigo),
constraint fk_uf foreign key (cfis_uf) references municipios (mun_codigo),
constraint uk_clientfisicos unique (cfis_cpf, cfis_email)
)
Por favor, qual o problema? Estou utilizando Firebird e IBOConsole. Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_5"

 

A contraint não pode ser criada pois algum(ns) registros violam a regra.

Provavelmente cfis_codigo

A solução é corrigir a tabela.

 

tente

 

 

 

select cfis_codigo
from clientfisicos
group by cfis_codigo
having count(*) > 1

para ver as duplicadas (deve ser isto).

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.