Enormes (20 dígitos) chaves primárias e SQLite
-
03-07-2019 - |
Pergunta
Se eu tentar inserir dados com uma chave primária de 20 dígitos em um banco de dados SQLite eu recebo um erro com a segunda instrução de inserção, pois "não é exclusivo". Se eu selecionar os valores que eu possa ver a partir do CommandPrompt SQLite que a chave primária é escrito em notação científica. O tipo de coluna é decimal. Existe uma maneira de forçar SQLite para inserir os valores "como estão" mantendo a precisão / "representação normal", mesmo com valores que tempo?
Solução
inseri-lo como uma 'string', não um número.
Outras dicas
o campo de chave primária deve ser um número inteiro, o maior valor é 9223372036854775807. utilização de um campo separado (indexados), e inserir o valor como corda.
Estranho, parece que o seu invólucro é colocar o número como um float. Pensei DECIMAL foi mapeada para um inteiro internamente. Usando uma corda iria funcionar, mas pode ser lento fazer a indexação da string em vez de um int.