Creation of a simple field failed in MySql CREATE TABLE bdt.transactions ( 
`transaction no`     int UNSIGNED NOT NULL  AUTO_INCREMENT,
data                 date    ,
by                   int  NOT NULL  ,
hours                int  NOT NULL  ,
for                  int  NOT NULL  ,
`transaction type`   set('normale','corso')   NOT NULL DEFAULT 'normale' ,
activity             text  NOT NULL  ,
CONSTRAINT pk_transactions PRIMARY KEY ( `transaction no` ) ) engine=InnoDB


Error:


  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  'by                   int  NOT NULL  ,  hours                int
  NOT NULL  ,  for                  int  NOT NULL    at line 4


With backquotes is now OK
by is a reserved word, and so is for

You should surround reserved words with backquotes (`) if you use them as table or column names. Just to be on the safe side, surround all column names with backquotes

CREATE TABLE bdt.transactions ( 
`transaction no`     int UNSIGNED NOT NULL  AUTO_INCREMENT,
`data`               date    ,
`by`                 int  NOT NULL  ,
`hours`              int  NOT NULL  ,
`for`                int  NOT NULL  ,
`transaction type`   set('normale','corso')   NOT NULL DEFAULT 'normale' ,
`activity`           text  NOT NULL  ,
CONSTRAINT pk_transactions PRIMARY KEY ( `transaction no` ) ) engine=InnoDB


Give it a Try !!!