Ciao, sto provando a creare la seguente tabella

codice:
create table messaInScena
  (
    data               date,  
    ora                time,
    spazio             varchar(20),
    spettacolo         varchar(40),
    postiDisponibili   smallint,
    prezzoIntero       decimal(5,2),
    prezzoRidotto      decimal(5,2),
    prezzoStudenti     decimal(5,2),
    primary key (data, ora, spazio),
    foreign key (spazio) references spazio(nome)
 on update cascade on delete set null,
    foreign key (spettacolo) references spettacolo(titolo)
 on update cascade on delete set null,
    constraint RA3_1 check (postiDisponibili >= 0)     
  ) ;
ma mi da il seguente errore:
Error Code: 1005 Can't create table 'teatrosql.messainscena' (errno: 150)

Le tabelle a cui fanno riferimento le chiavi esterne sono:

codice:
  create table spazio
  (
    nome             varchar(20) primary key, 
    indirizzo        varchar(40) not null,
    pianta           varchar(20),
    capienza         smallint
  );

create table spettacolo
  (
    titolo             varchar(40) primary key,  
    descrizione        LONGBLOB,
    annoProduzione     char(4)
  );
ho già verificato che le fk siano uniche e che non ci siano errori di battitura (ma date un controllo pure voi che non si sa mai ). Come si può vedere i campi di riferimento sono chiavi primarie. tra campi di riferimento e chiavi esterne i tipi e le dimensioni coincidono..

dove sbaglio???

ps. se serve posto tutte le tabelle