Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    charset utf8, database, tabelle e colonne

    Eccomi ancora qui a chiedervi lumi sui db mysql. Questa volta avrei bisogno di info sui charset, nello specifico vorrei sapere se modificando un db già esistente e quindi alterando nello specifico il charset, devo anche modificare a mano tutti i relativi campi in esso contenuti (tabelle e colonne) per rispecchiare il charset del db.

    Io ho dapprima modificato il charset del db con questa query:

    alter database nome_db charset=utf8;
    poi ho modificato le relative tabelle con questa query:

    alter table nome_tabella charset=utf8;
    ed infine ho modificato le relative colonne con questa query:

    alter table nome_tabella modify nome_colonna text character set utf8;
    Inanzitutto vorrei sapere se é corretto (il procedimento, in quanto la query so che é corretta perché non ho avuto nessun messaggio d'errore da linea di comando Mysql) e poi vorrei sapere se bisogna modificare/alterare tutte le colonne oppure solo le colonne che contengono caratteri (quindi evitare le colonne che contengono date e le colonne che contengono chiavi primarie)

    grazie per l'aiuto

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469

    Re: charset utf8, database, tabelle e colonne

    Originariamente inviato da timberwolf
    Eccomi ancora qui a chiedervi lumi sui db mysql. Questa volta avrei bisogno di info sui charset, nello specifico vorrei sapere se modificando un db già esistente e quindi alterando nello specifico il charset, devo anche modificare a mano tutti i relativi campi in esso contenuti (tabelle e colonne) per rispecchiare il charset del db.
    Ni
    Inanzitutto vorrei sapere se é corretto (il procedimento, in quanto la query so che é corretta perché non ho avuto nessun messaggio d'errore da linea di comando Mysql) e poi vorrei sapere se bisogna modificare/alterare tutte le colonne oppure solo le colonne che contengono caratteri (quindi evitare le colonne che contengono date e le colonne che contengono chiavi primarie)
    Se per "chiavi primarie" intendi "interi" sì (possono essere chiavi primarie anche stringhe).

    In breve: puoi convertire l'intera tabella in un colpo solo con ALTER... CONVERT TO CHARACTER SET blablabla, ma puoi avere effetti collaterali "strani" se hai campi molto lunghi (=quando diventano utf8 =x3 => mysql ti può cambiare occultamente il tipo del campo)

    Oppure converti "a mano" tutti CHAR, VARCHAR e TEXT (e basta), ovviamente nell'ipotesi che non siano state definite BINARY, mantenendo un controllo più "fine" sul campo generato.

    Infine una segnalazione: se nel campo tieni già codificata la stringa in utf8 (praticamente usi latin come container, ma l'applicazione l'interpreta come utf8) allora ti tocca fare il "porcaccione" e convertire prima in blob e poi nel tipo-campo definitivo con utf8.

    Perchè, come accennato, i blob non vengono convertiti da mysql.

    Chiaramente nell'ipotesi di avere mysql >=5, per le versioni ultra-vecchie ci sono accorgimenti da prendere

  3. #3
    grazie adesso mi é più chiaro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.