Originariamente inviato da viper
niente ho provato ma non funziona

strano sulle altre tabelle c'è il default ma non dà errore

boh
va be' spieghiamolo meglio. Osserva queste due righe:

codice:
flow_code varchar(20) default NULL,
default TINYINT(1) NOT NULL default '0',
come puoi vedere nella prima riga trovi la parola "default" nei parametri di flow_code e questo e' il motivo per cui mysql si riserva la parola. E' una peculiarita' del campo.

nella seconda riga default e' messo anche come nome di campo. Questo provoca confusione a mysql e dichiara un errore di sintassi. Vede cioe' una istruzione senza riferimento ad alcun campo.

Ora hai due possibilita':

1) la piu' logica e la 'piu' meglio' cambiare il nome del campo default in qualcosa d'altro
2) mettere il nome di campo nel seguente modo: `default` tra apici inverse.

la soluzione 2 comporta di dovere "sempre" mettere il nome del campo tra quei cosi buffi che sono le apici inverse, o accenti, o ALT + 96.... e questo in tutte le query. come dire un rompimento inutile di marroni. Quindi insisterei sul cambiare il nome del campo. Poi tu fai come vuoi.

non confonderti solo default tra il nome del campo e l'istruzione .