TransWikia.com

Qual utilidade de declarar uma coluna como Char(0)?

Stack Overflow em Português Asked by user60252 on December 16, 2021

Eu sei que CHAR(0) não é definido no ANSI SQL, mas no MySQL é possível definir uma coluna com especificação deste tipo de dados.

Qual seria o uso/utilidade de tal coluna?

One Answer

É para manter a coluna existente no modelo sem ocupar espaço real de dados.

Algumas aplicações podem querer acessar uma coluna que não faz mais sentido existir no DB ou que ainda não é hora de usá-la de fato. Então para não quebrar a aplicação você mantém a coluna existente, o que será incluída em requisições, inclusive quando faz um select * from ela estará lá, mesmo sem dado algum real.

O MySQL tende ser mais permissivo e eu acho essa permissividade específica boa porque ela é útil em casos assim. Só não é para abusar. Tende a ser mais útil quando o banco de dados acaba funcionando como uma API do sistema, o que não costuma ser uma boa escolha.

Ainda é possível usar para indicar a nulidade de um valor ou não (e só isso é indicado, mais nada). Porque todas colunas são controladas com um bit, então ela ocupará o espaço de 1 bit, que pode mudar o tamanho da linha ou não dependendo da composição das outras colunas. Pode ver mais sobre isso em resposta do Bacco sobre nulidade em banco de dados.

Já vi gente usando isso para ter um dado booleano menor que o existente que ocupa 1 byte, mas é abuso, e pode ter dificuldades no futuro por causa disso, eu não arriscaria.

Answered by Maniero on December 16, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP