Urgente erro muito estranho ao criar tabela
Bom dia Tarde.
Estou tentando criar uma tabela em meu banco de dados, e ao tentar criar esta tabela recebo a seguinte mensagem de erro.
[color=red:e9999c7c13]STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index ´RDB$INDEX[/color:e9999c7c13]_15´
O que faco para resolver?
Utilizo IBExpert para manipulacao do banco de dados e FireBird para gerenciamento.
Aqui esta o script da Tabela:
Create table CadPro
( ICODINTPRO INTEGER Not Null,
CCODIGO VARCHAR(20) Not Null,
CDESCRICAO CHAR(65) Not Null,
CCOMPLENTO1 CHAR(65),
CCOMPLENTO2 CHAR(65),
CCOMPLENTO3 CHAR(65),
CSITUACAO CHAR(1),
DDATCAD DATE,
ICODFOR SMALLINT,
ICODGRU SMALLINT,
ICODFAB SMALLINT,
CAPELIDO CHAR(65),
QESTOQUE NUMERIC(12,4),
QESTMAX NUMERIC(12,4),
QESTMIN NUMERIC(12,4),
PPERCUS NUMERIC(12,4),
PPERTAB NUMERIC(12,4),
PPERMIN NUMERIC(12,4),
PPERVEN NUMERIC(12,4),
PPERVEN2 NUMERIC(12,4),
VPRCCUS NUMERIC(12,4),
VPRCTAB NUMERIC(12,4),
VPRCMIN NUMERIC(12,4),
VPRCVEN NUMERIC(12,4),
VPRCVEN2 NUMERIC(12,4),
PALIIPI NUMERIC(12,4),
PALIICMS NUMERIC(12,4),
PALIII NUMERIC(12,4),
PALIISS NUMERIC(12,4),
PALISUBI NUMERIC(12,4),
PALIREDICMS NUMERIC(12,4),
PIMPSIMPLES NUMERIC(12,4),
PIMPCOFINS NUMERIC(12,4),
PIMPPIS NUMERIC(12,4),
PIMPICMS NUMERIC(12,4),
PIMPCOMI NUMERIC(12,4),
PIMPOUTROS NUMERIC(12,4),
PIMPLUCRO NUMERIC(12,4),
PPERIPIC NUMERIC(12,4),
PPERFREC NUMERIC(12,4),
PPERTXFI NUMERIC(12,4),
LCREICM_E CHAR(1),
LCREIPI_E CHAR(1),
LREDICM_E CHAR(1),
LCREICM_S CHAR(1),
LCREIPI_S CHAR(1),
LREDICM_S CHAR(1),
ICODCLAFIS SMALLINT,
ICODSITTRI SMALLINT,
ICODFOR SMALLINT,
ICODEMB SMALLINT,
ICODOBS SMALLINT,
CUNIDADE VARCHAR(3),
PCOMIVEN NUMERIC(12,4),
NPESO NUMERIC(12,4),
CPRATELEIRA CHAR(65),
ICODTIPPROD SMALLINT,
MOBS BLOB,
CMEDIDA VARCHAR(10),
IGARANTIA SMALLINT,
CTIPOGARAN VARCHAR(10),
ICODGRAT SMALLINT,
ICODGRAC SMALLINT,
THORALTPRC TIME,
ICODEMP SMALLINT,
NLARG NUMERIC,
NCOMPRIMENTO NUMERIC,
NESPESSURA NUMERIC,
NDIVISOR NUMERIC
)
Estou tentando criar uma tabela em meu banco de dados, e ao tentar criar esta tabela recebo a seguinte mensagem de erro.
[color=red:e9999c7c13]STORE RDB$RELATION_FIELDS failed
attempt to store duplicate value (visible to active transactions) in unique index ´RDB$INDEX[/color:e9999c7c13]_15´
O que faco para resolver?
Utilizo IBExpert para manipulacao do banco de dados e FireBird para gerenciamento.
Aqui esta o script da Tabela:
Create table CadPro
( ICODINTPRO INTEGER Not Null,
CCODIGO VARCHAR(20) Not Null,
CDESCRICAO CHAR(65) Not Null,
CCOMPLENTO1 CHAR(65),
CCOMPLENTO2 CHAR(65),
CCOMPLENTO3 CHAR(65),
CSITUACAO CHAR(1),
DDATCAD DATE,
ICODFOR SMALLINT,
ICODGRU SMALLINT,
ICODFAB SMALLINT,
CAPELIDO CHAR(65),
QESTOQUE NUMERIC(12,4),
QESTMAX NUMERIC(12,4),
QESTMIN NUMERIC(12,4),
PPERCUS NUMERIC(12,4),
PPERTAB NUMERIC(12,4),
PPERMIN NUMERIC(12,4),
PPERVEN NUMERIC(12,4),
PPERVEN2 NUMERIC(12,4),
VPRCCUS NUMERIC(12,4),
VPRCTAB NUMERIC(12,4),
VPRCMIN NUMERIC(12,4),
VPRCVEN NUMERIC(12,4),
VPRCVEN2 NUMERIC(12,4),
PALIIPI NUMERIC(12,4),
PALIICMS NUMERIC(12,4),
PALIII NUMERIC(12,4),
PALIISS NUMERIC(12,4),
PALISUBI NUMERIC(12,4),
PALIREDICMS NUMERIC(12,4),
PIMPSIMPLES NUMERIC(12,4),
PIMPCOFINS NUMERIC(12,4),
PIMPPIS NUMERIC(12,4),
PIMPICMS NUMERIC(12,4),
PIMPCOMI NUMERIC(12,4),
PIMPOUTROS NUMERIC(12,4),
PIMPLUCRO NUMERIC(12,4),
PPERIPIC NUMERIC(12,4),
PPERFREC NUMERIC(12,4),
PPERTXFI NUMERIC(12,4),
LCREICM_E CHAR(1),
LCREIPI_E CHAR(1),
LREDICM_E CHAR(1),
LCREICM_S CHAR(1),
LCREIPI_S CHAR(1),
LREDICM_S CHAR(1),
ICODCLAFIS SMALLINT,
ICODSITTRI SMALLINT,
ICODFOR SMALLINT,
ICODEMB SMALLINT,
ICODOBS SMALLINT,
CUNIDADE VARCHAR(3),
PCOMIVEN NUMERIC(12,4),
NPESO NUMERIC(12,4),
CPRATELEIRA CHAR(65),
ICODTIPPROD SMALLINT,
MOBS BLOB,
CMEDIDA VARCHAR(10),
IGARANTIA SMALLINT,
CTIPOGARAN VARCHAR(10),
ICODGRAT SMALLINT,
ICODGRAC SMALLINT,
THORALTPRC TIME,
ICODEMP SMALLINT,
NLARG NUMERIC,
NCOMPRIMENTO NUMERIC,
NESPESSURA NUMERIC,
NDIVISOR NUMERIC
)
Rodrigo Ferreira
Curtidas 0
Respostas
Torres Delphi
22/08/2003
Estou achando estranho que no seu script nao tem mencionado nenhum relacionamento de campo com outra tabela.
Faca um select nesta tabela de sistema (RDB$RELATION_FIELDS). Maiores detalhes vc pode pegar no site www.firebase.com.br ´Tabelas de sistema
Funcao da tabela RDB$RELATION_FIELDS:
´Mantém a lista dos campos das tabelas e as informações das características de uma coluna para os domínios. Os nomes dos campos são relacionados através da coluna RDB$FIELD_SOURCE, com um registro na tabela RDB$FIELDS que contém um nome de sistema (´SQL$<n>´). Os dados armazenados incluem informações sobre os tipos das colunas, e podem conter informações sobre os valores default e possibilidade de NULLs.´
Outra coisa, acho que vc precisa melhorar a normalizacao de seu modelo.
Tem certeza que vc precisa de todos esses campos em uma unica tabela?
Separe os dados ref impostos, dimensoes em outra e assim por diante. Depois para ligar as tabelas, faca relacionamento com o ID do produto.
Fica mais limpo e correto.
Faca um select nesta tabela de sistema (RDB$RELATION_FIELDS). Maiores detalhes vc pode pegar no site www.firebase.com.br ´Tabelas de sistema
Funcao da tabela RDB$RELATION_FIELDS:
´Mantém a lista dos campos das tabelas e as informações das características de uma coluna para os domínios. Os nomes dos campos são relacionados através da coluna RDB$FIELD_SOURCE, com um registro na tabela RDB$FIELDS que contém um nome de sistema (´SQL$<n>´). Os dados armazenados incluem informações sobre os tipos das colunas, e podem conter informações sobre os valores default e possibilidade de NULLs.´
Outra coisa, acho que vc precisa melhorar a normalizacao de seu modelo.
Tem certeza que vc precisa de todos esses campos em uma unica tabela?
Separe os dados ref impostos, dimensoes em outra e assim por diante. Depois para ligar as tabelas, faca relacionamento com o ID do produto.
Fica mais limpo e correto.
GOSTEI 0
Rodrigo Ferreira
22/08/2003
legal vou dar uma olhada no FireBise
GOSTEI 0
Afarias
22/08/2003
vc declarou o mesmo campo 2 vezes::
ICODFOR
No mais, aconselho seguir os comentários do Torres sobre normalização.
T+
ICODFOR
No mais, aconselho seguir os comentários do Torres sobre normalização.
T+
GOSTEI 0
Rodrigo Ferreira
22/08/2003
Ai colega valeu mesmo, realmente havia um campo duplicado em minha tabela... tb vou seguir as discas sobre a normalizacao...
Agradeço a colaboração de todos vc´s irmâos.
fui valeu.
Agradeço a colaboração de todos vc´s irmâos.
fui valeu.
GOSTEI 0