Énormes clés primaires et SQLite (20 chiffres)
-
03-07-2019 - |
Question
Si j'essaie d'insérer des données avec une clé primaire à 20 chiffres dans une base de données SQLite, la deuxième instruction insert contient une erreur car elle n'est pas unique. Si je sélectionne les valeurs que je peux voir à l'invite de commande SQLite, la clé primaire est écrite en notation scientifique. Le type de colonne est décimal. Existe-t-il un moyen de forcer SQLite à insérer les valeurs " telles qu’elles sont " en gardant la précision / "représentation normale" même avec des valeurs aussi longues?
La solution
insérez-le sous forme de "chaîne" et non de nombre.
Autres conseils
le champ de clé primaire doit être un entier, la plus grande valeur est 9223372036854775807. Utilisez un champ séparé (indexé) et insérez la valeur sous forme de chaîne.
Étrange, on dirait que votre wrapper met le nombre sous forme de float. Je pensais que DECIMAL était associé à un entier en interne. L'utilisation d'une chaîne fonctionnerait, mais pourrait être lente pour l'indexation de la chaîne plutôt que pour un entier.