Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Problema com o armazenamento de grandes números no banco de dados mysql


Você aparentemente está usando PHP para gerar esse ID.

Como você não mencionou o que exatamente está acontecendo, só posso supor algumas razões para o design do seu banco de dados.

Primeiro, você pode armazenar esse número como bigint e não varchar . É um número inteiro que você está salvando, não vejo razão para você usar varchar e inerentemente desperdiçar mais espaço do que o necessário.bigint usa 8 bytes para armazenar um número. Isso significa que cada número com mais de 8 dígitos armazenados no campo varchar usaria mais espaço do que um bigint campo que pode armazenar números até 2^64.

Em segundo lugar, certifique-se de não usar nenhuma formatação de número antes de enviar o resultado de sua operação de cálculo para o banco de dados. Eu copiei/colei o inteiro que você postou (10000000754987) e o php não o converte automaticamente em notação científica, então meu palpite é que você tem algo mais acontecendo lá em segundo plano com essa geração de número - desligue-o se possível e armazene o número no tipo de campo apropriado (bigint). Também seria útil se você postasse informações adicionais sobre seu aplicativo e o que ele faz, porque o erro nem sempre está onde as pessoas pensam.