In MySQL l'utilizzo delle chiavi esterne ha senso solamente se il tipo di tabelle utilizzate è INNODB, altrimenti il vincolo di chiave viene ignorato.
Comunque l'errore risiede nella sintassi. MySQL utilizza questa:
codice:
ALTER TABLE nome
ADD [CONSTRAINT [simbolo]]
FOREIGN KEY [nome_indice] (nome_campo,...)
[reference_definition]
Quindi, se non vado errato, dovrebbe diventare così:
codice:
ALTER TABLE messaggio
ADD FOREIGN KEY (IDCasella)
REFERENCES casella_di_posta(IDCasella)
ON DELETE CASCADE
Ciao.