nessun errore. se il campo e' minore di tre verra' sempre impostato come CHAR. Non mi ricordo ora se tre e' compreso o meno. Il perche' e' intuitivo. Siccome VARCHAR usa un byte per definire la lunghezza tanto vale che sia un CHAR che e' un campo di lunghezza fissa.Originariamente inviato da meganoide
il campo 'livello' lo voglio portare da CHAR(2) a VARCHAR(2):
ALTER TABLE `utenti` CHANGE `livello` `livello` VARCHAR( 2 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL
la eseguo e da phpmyadmin il campo resta sempre CHAR(2)... e dice anche che "La query è stata eseguita con successo"
dov'è l'errore?
Occhio al contrario... per lunghezze superiori >3 (con la riserva sul 3 che non ricordo) se utilizzi un campo VARCHAR tutti i campi CHAR di lunghezza superiore a 3 verranno trasformati in VARCHAR. In pratica mysql puo' gestire solo un tipo di campo tra CHAR e VARCHAR con sempre il limite minimo di > 3. Al di sotto del quale e' sempre CHAR.

Rispondi quotando