Jak je mozne, ze kdyz vytvarim tabulku, chci tam dat napr. char(5) pro psc
ale zmeni se mi to na varchar. A vsechny pokusy zmenit sloupec na char z varchar jsou stene. Ulozi se vsechny zmeny, krome char, ktery se zmeni na varchar.
Takze i u sloupcu, kde varchar nema smysl, je automacitky varchar, i kdyz char by byl dostatecny a rychlejsi.
Nevite nekdo co s tim? Vykaslat se na to?
Mně to taky phpMyAdmin dělá, ale nechtělo se mi to nikdy řešit...
Rozdíl mezi CHAR a VARCHAR je v tom, že CHAR zabírá vždy zadanou délku ve znacích (je tedy náročnější na objem dat, ale naopak rychlejší). VARCHAR zabere maximálně zadaný počet znaků, když jich je méně, zabere jen tolik, kolik je třeba (má menší objem dat, ale zase by měl být teoreticky malinko pomalejší).
Pokud však nemáš nějakou obrovskou databázi o tisících, deseti ticísích či sto tisících záznamů, rozdíl asi ani nepoznáš. Proto to neřeším.
Druhou věcí je, že nevím, jaký je rozsah CHARu v MySQL. Je možné, že třeba jen do 10 znaků. Při menším počtu znaků mi totiž CHAR phpMyAdmin ponechá.
Diky za odpoved.
Mas pravdu v tom, ze je to celkem jedno, ale pokud mam vsechny retezce stejny (coz psc splnuje), tak muze byt char uspornejsi, protoze se nikde neuklada delka kazdeho zaznamu. A navic to muze byt krapet rychlejsi.
phpMyadmin mi necha char jen na 3 znaky, od 4 uz to zmeni na varchar.
VARCHAR zabira jen to co v nem je ne kolik je maximalni pocet znaku (aspon podle phpMyAdmina).