Non so se quello che fai e' roba tua oppure adattata da qualche altro script, premesso questo direi che per gestire valori monetari sarebbe meglio usare campi decimal(M,D) dove per M si considerano il totale delle cifre e con D il numero dei decimali.

Es.: decimal(8,2) conterra' valori fino ad un max di € 999999,99.

Altra considerazione: i campi da usare nella foreign key devono essere dello stesso tipo e dimensione e devono fare riferimento ad un indice. Poi un campo INT puo' avere al max 10 digit, 11 con il segno meno davanti ai numerelli quindi INT(15) e' fuori "portata".

Se su un pc accetta il default per il motore e un altro pc invece no dipende da come sono impostate le variabili nel file di configurazione. Evidentemente su uno l'engine di default e' MyISAM e sull'altro InnoDB.