dependencia en identificacion ERROR

nutydag
10 de Marzo del 2006
Buenas, cuando ejecuto este codigo, tengo 3 tablas creadas y solo me falta esta ultima, me sale el un error:

La tabla detallepedido NO HA PODIDO CREARSE Can't create table '.farmaciadetallepedido.frm' (errno: 150)

Entonces, me explico, la tabla detallepedido, tiene dependencia en identificacion de la tabla pedidos y tambien recibe una foreign key de medicamentos, y creo que asi está bien definido pero me sale ese error, AYUDADME POR FAVOR!!!
GRACIAS


<?
$basedb="farmacia";
$tabla="detallepedido";
$tabla1="pedidos";
$tabla2="medicamentos";
$c=mysql_connect ("localhost","danidag","alumno");
mysql_select_db ($basedb, $c);
$creardb="CREATE TABLE $tabla (";
$creardb.="Id_pedido INT AUTO_INCREMENT,";
$creardb.="n_detalle INT(6) UNSIGNED NOT NULL,";
$creardb.="id_medica char(25) NOT NULL,";
$creardb.="cantidad INT(3) NOT NULL,";
$creardb.="PRIMARY KEY(Id_pedido, n_detalle), ";
$creardb.="INDEX(Id_pedido), ";
$creardb.=" FOREIGN KEY(Id_pedido) REFERENCES $tabla1(Id_pedido),";
$creardb.="INDEX(id_medica), ";
$creardb.=" FOREIGN KEY(id_medica) REFERENCES $tabla2(id_medica)";
$creardb.=")";
$creardb.=" Type=InnoDB";
if(mysql_query ($creardb ,$c)) {
echo "<h2> Tabla $tabla creada con EXITO </h2><br>";
}else{
echo "<h2> La tabla $tabla NO HA PODIDO CREARSE ";
echo mysql_error ($c)."<br>";
$numerror=mysql_errno ($c);
if ($numerror==1050){echo "porque YA EXISTE</h2>";}
};
mysql_close($c);
?>