ERRO key size too big - Indexando VARCHAR
Utilizo Firebird 1.5
Preciso que um campo texto tenha 250 carateres, e que ainda seja chave primária, tive de utilizar o tipo [b:021d14a402]CHAR[/b:021d14a402] porque quando tento utilizar o [b:021d14a402]VARCHAR[/b:021d14a402] recebo uma msg de erro dizendo que o campo é grande demais para ser indexado:
*****************************************************
The next statement causes the following error:
This operation is not defined for system tables.
unsuccessful metadata update.
key size too big for index PK_IDMODULOTB.
******************************************************
ALTER TABLE ZTBMODULOS ADD CONSTRAINT PK_IDMODULOTB PRIMARY KEY (IDMODULO);
Alguem poderia me explicar porque?
Atenciosamente,
8) Vagner Wolf
Preciso que um campo texto tenha 250 carateres, e que ainda seja chave primária, tive de utilizar o tipo [b:021d14a402]CHAR[/b:021d14a402] porque quando tento utilizar o [b:021d14a402]VARCHAR[/b:021d14a402] recebo uma msg de erro dizendo que o campo é grande demais para ser indexado:
*****************************************************
The next statement causes the following error:
This operation is not defined for system tables.
unsuccessful metadata update.
key size too big for index PK_IDMODULOTB.
******************************************************
ALTER TABLE ZTBMODULOS ADD CONSTRAINT PK_IDMODULOTB PRIMARY KEY (IDMODULO);
Alguem poderia me explicar porque?
Atenciosamente,
8) Vagner Wolf
Vagner Wolf
Curtidas 0
Respostas
Gandalf.nho
03/03/2006
Se vc estiver usando o CHARACTER SET WIN1252 com COLLATE PXW_INTL850 o limite para índices é de 84 caracteres. Para contornar essa limitação vc terá que esperar pelo FB 2.0. Mas pq usar um campo VARCHAR e ainda desse tamanho como chave primária?
GOSTEI 0
Edilcimar
03/03/2006
eu também já tive este problema quando tentei fazer um índice com 2 campos varchar de 50 caracteres cada!
GOSTEI 0
Vagner Wolf
03/03/2006
Se vc estiver usando o CHARACTER SET WIN1252 com COLLATE PXW_INTL850 o limite para índices é de 84 caracteres. Para contornar essa limitação vc terá que esperar pelo FB 2.0. Mas pq usar um campo VARCHAR e ainda desse tamanho como chave primária?
ê que pretendo testar uma chave de encriptacao, o fato de ser chave primãria, e apenas para ver como o banco reage, caso de alguns bugs, eu terei que utilizar um campo numero mesmo, porem caso funcione a contento pretendo encryptar todos os dados desta tabela que possui os codigos de acesso dos usuãrios do sistema, ja que parece nao ser possivel proteger o acesso as tabelas do FB1.5 por um aplicativo comum como o IBExpert, sera que no 2.0 ja sera possivel :?:
Cordialmente,
8) Vagner Wolf
GOSTEI 0