sql >> Databáze >  >> RDS >> Mysql

MySQL:Proč specifikovat šířku zobrazení bez použití zerofill

Tato další šířka zobrazení „funkcí“ je docela matoucí, protože v jiných typech sloupců, jako je CHAR je udává délku.

Zde je krátký rozpis:

  • Nejdůležitější:není s uvedením "úložného prostoru" nebo "počtu číslic". Říká pouze, jak jsou data v tomto sloupci formátována než se vrátí. INT(5) může uložit stejné hodnoty jako INT(16) nebo INT(255) - všechny tři mohou uložit všechny (a pouze) hodnoty, které jsou platné pro INT. INT(255) nemůže uložit číslo s 255 číslicemi. Úložný prostor pro všechny z nich je prostor, který zabírá INT.
  • Pokud používáte ZEROFILL ve sloupci s šířkou zobrazení a řetězcová reprezentace uloženého čísla je kratší než šířka zobrazení, bude doplněn nulami. Pokud je delší, nic se neděje. Pokud zvolíte INT(5) a hodnota je 13, bude vrácena jako 00013. Pokud je hodnota 123456, bude vrácena jako 123456.
  • Pokud nepoužíváte ZEROFILL , nebude tam vůbec žádná výplň (žádné mezery a podobně)
  • Pokud používáte ZEROFILL , musíte si být vědomi toho, že sloupec bude také UNSIGNED
  • V každém případě je při dotazu na metadata tabulky vrácena šířka zobrazení. Aplikace by tedy mohla vědět, jak mají být data formátována.

Nelíbí se mi šířka displeje, protože vrstva úložiště "ví" o vizuální prezentaci uložených dat. Kromě toho si nejsem vědom žádného užitku.




  1. Problém hibernace s Oracle Trigger pro generování ID ze sekvence

  2. Jak vybrat první řádek v každé GROUP BY Group

  3. Jak vyřešit ORA-29280:neplatná cesta k adresáři

  4. PDO MySQL:Použít PDO::ATTR_EMULATE_PREPARES nebo ne?