DEV Community

Cover image for Cadê meus zeros? Sobre tipos em banco de dados.
Lucas Cruz
Lucas Cruz

Posted on

Cadê meus zeros? Sobre tipos em banco de dados.

Estava eu codando, mais um dia comum, quando de repente acontece um erro.

O valor que deveria ser salvo aparece na interface diferente do valor que eu digitei, nesse momento apertei ctrl+c para parar a execução do código, e rodei ele outra vez com npx expo start.

O banco de dados recarregou e ali estava outra vez o valor errado, eu estava testando a inserção de um código e como teste usei "0000000000" porém o que aparecia na lista era apenas 0.

Meme algo de errado não está certo

Depois de reiniciar a segunda coisa que pensei foi que em algum lugar do código deve está convertendo para inteiro (Sim, eu estava usando JavaScript), mas ao analisar o código parecia tudo ok.

Até lembrar do tipo que estava usando no banco de dados, os Ids eram do tipo inteiro. Então tudo fez sentido! Não posso salvar dados que tenham zeros a esquerda dessa forma:

tx.executeSql(
'CREATE TABLE IF NOT EXISTS Machine (id INTEGER PRIMARY KEY, is_available INTEGER)',
[], 
()=>{console.log("successful create Machine")}, 
()=>{console.error("error: create Machine")})

Enter fullscreen mode Exit fullscreen mode

Para resolver essa questão bastava modificar o tipo para texto.

tx.executeSql(
'CREATE TABLE IF NOT EXISTS Machine (id TEXT PRIMARY KEY, is_available INTEGER)',
[], 
()=>{console.log("successful create Machine")}, 
()=>{console.error("error: create Machine")})

Enter fullscreen mode Exit fullscreen mode

Agora sim o app consegue adicionar itens com zeros a esquerda:

Interface com o item 000000000 adicionado

Concluindo

  • É sempre importante verificar os tipos de dados que está usando no banco de dados, para não ocorrer erros como este e perder seus zeros ou pior.
  • Apesar parecer intuitivo usar um tipo numérico como inteiro prefira usar texto quando o número que for usar não for usado para cálculos ou seja que não precisem necessariamente ser um número.
  • Façam testes.

Sentry blog image

How to reduce TTFB

In the past few years in the web dev world, we’ve seen a significant push towards rendering our websites on the server. Doing so is better for SEO and performs better on low-powered devices, but one thing we had to sacrifice is TTFB.

In this article, we’ll see how we can identify what makes our TTFB high so we can fix it.

Read more

Top comments (0)

SurveyJS custom survey software

Simplify data collection in your JS app with a fully integrated form management platform. Includes support for custom question types, skip logic, integrated CCS editor, PDF export, real-time analytics & more. Integrates with any backend system, giving you full control over your data and no user limits.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay