Mysql
 sql >> Base de données >  >> RDS >> Mysql

Problème de stockage de grands nombres dans mysql DB

Vous utilisez apparemment PHP pour générer cet ID.

Puisque vous n'avez pas mentionné ce qui se passe exactement, je ne peux que supposer certaines raisons pour la conception de votre base de données.

Tout d'abord, vous pouvez stocker ce numéro en tant que bigint et non varchar . C'est un entier que vous enregistrez, je ne vois aucune raison pour laquelle vous utiliseriez varchar et gaspilleriez intrinsèquement plus d'espace que nécessaire.bigint utilise 8 octets pour stocker un nombre. Cela signifie que chaque nombre avec plus de 8 chiffres stockés dans le champ varchar utiliserait plus d'espace qu'un bigint champ pouvant stocker des nombres jusqu'à 2^64.

Deuxièmement, assurez-vous de ne pas utiliser de formatage numérique avant d'envoyer le résultat de votre opération de calcul à la base de données. J'ai copié/collé l'entier que vous avez posté (10000000754987) et php ne le convertit pas automatiquement en notation scientifique, donc je suppose que vous avez autre chose en arrière-plan avec cette génération de nombres - désactivez-le si possible et stockez le nombre dans le type de champ approprié (bigint). Ce serait également utile si vous publiiez des informations supplémentaires sur votre application et ce qu'elle fait, car l'erreur n'est pas toujours là où les gens pensent qu'elle se trouve.