Visualizzazione dei risultati da 1 a 9 su 9

Discussione: alter table

  1. #1

    alter table

    Ciao a tutti
    mi sono accorto che una tabella mysql ha tutti i campi con valore null settato a si e il valore predefinito settato a NULL tranne il primo (id) che è autoincrement

    Siccome ci sono un sacco di campi ho impostato la query per modificare la struttura di tutti i campi tranne il primo settando null=>no e predefiinito=>0

    $query="ALTER TABLE `analisi` CHANGE NOT NULL DEFAULT '0' "

    ma non funziona
    e non riesco ad escludere dalla modifica il campo autoincrement

    grazie

  2. #2
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    manca i nomi dei campi che vuoi modificare... nella forma:

    ALTER TABLE `analisi` CHANGE 'nomecampo' 'nomcampo' NOT NULL DEFAULT '0' ,
    CHANGE 'nomecampo1' 'nomcampo1' NOT NULL DEFAULT '0' ,
    CHANGE 'nomecampo2' 'nomcampo2' NOT NULL DEFAULT '0'

  3. #3
    Originariamente inviato da kodode
    manca i nomi dei campi che vuoi modificare...
    non si possono dichiarare tutti?

    O meglio tutti tranne il primo?

  4. #4
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    direi proprio di no... però spero (per te) che qualcuno mi smetisca

  5. #5
    Originariamente inviato da kodode
    direi proprio di no... però spero (per te) che qualcuno mi smetisca
    OK
    allora Ho provato a fare la query inserendo tutti i nomi dei campi (che sono molti) che avevo inserito in $rina[0]

    $query="ALTER TABLE analisi";

    while ( $riga=mysql_fetch_array($result, MYSQL_BOTH) )
    {
    $query.="CHANGE $riga[0] $riga[0] NOT NULL DEFAULT '0',"; }

    Tutto ok.......
    ma dopo l'ultimo nome di campo mi stampa la virgola finale che non ci deve essere.
    Come la toglieresti?

    Grazie

  6. #6
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    alla fine
    $query = substr($query, 0, -1);

  7. #7
    Questa è la query risultante

    $query="ALTER TABLE analisi CHANGE BUN BUN NOT NULL DEFAULT 0, CHANGE creatina creatina NOT NULL DEFAULT 0, CHANGE bil_tot bil_tot NOT NULL DEFAULT 0, CHANGE ALT ALT NOT NULL DEFAULT 0, CHANGE ALP ALP NOT NULL DEFAULT 0, CHANGE GGT GGT NOT NULL DEFAULT 0, CHANGE AST AST NOT NULL DEFAULT 0, CHANGE LDH LDH NOT NULL DEFAULT 0, CHANGE prot_tot prot_tot NOT NULL DEFAULT 0, CHANGE albumina albumina NOT NULL DEFAULT 0, CHANGE glucosio glucosio NOT NULL DEFAULT 0, CHANGE trigliceri trigliceri NOT NULL DEFAULT 0, CHANGE colest colest NOT NULL DEFAULT 0, CHANGE magnesio magnesio NOT NULL DEFAULT 0, CHANGE calcio calcio NOT NULL DEFAULT 0, CHANGE Ck Ck NOT NULL DEFAULT 0, CHANGE Fe Fe NOT NULL DEFAULT 0, CHANGE fosforo fosforo NOT NULL DEFAULT 0, CHANGE pH_sang pH_sang NOT NULL DEFAULT 0, CHANGE pO2 pO2 NOT NULL DEFAULT 0, CHANGE pCO2 pCO2 NOT NULL DEFAULT 0, CHANGE HCO3 HCO3 NOT NULL DEFAULT 0, CHANGE Na_sang Na_sang NOT NULL DEFAULT 0, CHANGE K_sang K_sang NOT NULL DEFAULT 0, CHANGE Cl_sang Cl_sang NOT NULL DEFAULT 0, CHANGE TCO2_ed_an TCO2_ed_an NOT NULL DEFAULT 0, CHANGE ACT ACT NOT NULL DEFAULT 0, CHANGE APTT APTT NOT NULL DEFAULT 0, CHANGE PT PT NOT NULL DEFAULT 0, CHANGE leucociti leucociti NOT NULL DEFAULT 0, CHANGE glo_rossi glo_rossi NOT NULL DEFAULT 0, CHANGE osmolalita osmolalita NOT NULL DEFAULT 0, CHANGE Ca_ion Ca_ion NOT NULL DEFAULT 0, CHANGE Hct Hct NOT NULL DEFAULT 0, CHANGE Hb Hb NOT NULL DEFAULT 0, CHANGE MCHC MCHC NOT NULL DEFAULT 0, CHANGE Plt Plt NOT NULL DEFAULT 0, CHANGE ret_neut_s ret_neut_s NOT NULL DEFAULT 0, CHANGE neut_banda neut_banda NOT NULL DEFAULT 0, CHANGE eosinofili eosinofili NOT NULL DEFAULT 0, CHANGE basofili basofili NOT NULL DEFAULT 0, CHANGE linfociti linfociti NOT NULL DEFAULT 0, CHANGE mastociti mastociti NOT NULL DEFAULT 0, CHANGE schistocit schistocit NOT NULL DEFAULT 0, CHANGE H_J H_J NOT NULL DEFAULT 0, CHANGE granulociti granulociti NOT NULL DEFAULT 0";

    che mi ritorna questo errore:

    1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOT NULL DEFAULT 0, CHANGE creatina creatina NOT NULL DEFAULT 0,

  8. #8
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    mancano gli apici... prova cosi

    $query.="CHANGE '" . $riga[0] . "' '" . $riga[0] . "' NOT NULL DEFAULT '0',"; }

  9. #9
    Originariamente inviato da kodode
    mancano gli apici... prova cosi

    $query.="CHANGE '" . $riga[0] . "' '" . $riga[0] . "' NOT NULL DEFAULT '0',"; }
    grazie

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 © 2024 vBulletin Solutions, Inc. All rights reserved.