problema con relaciones en mysql 4.0.15

jrelo
30 de Octubre del 2004
estoy desarrollando un sitio con la versi贸n mysql para windows. con la versi贸n 4.1.5 todo va bien. como necesito integridad referencial, cre茅 tablas tipo innodb y todo bien. sin embargo, la empresa que me da el hosting me dice que tienen instalada la versi贸n 4.0.5. me la baj茅, la instal茅 y he aqu铆 que no encuentro la forma de crear las relaciones. con las tablas tipo innodb me da error. si las tablas son tipo myisam, no recibo error, pero no me crea las relaciones. he probado a hacerlo en modo gr谩fico, mediante mysql administrator 1.0.13 y mediante mysql control center 0.9.4 beta y nada. con el comando sql correspondiente recibo el mismo error que con estos dos programas (can't create table ......). 驴alguien puede ayudarme? en alg煤n lugar de esta misma p谩gina encontr茅 lo siguiente, pero ni as铆 he conseguido solucionarlo-->
Si MySQL da un error cuyo n煤mero es el 1005 al momento de ejecutar una sentencia CREATE TABLE, y el mensaje de error se refiere al n煤mero 150, la creaci贸n de la tabla fall贸 porque la restricci贸n de la clave for谩nea no se hizo de la manera adecuada. De la misma manera, si falla una sentencia ALTER TABLE y se hace referencia al error n煤mero 150, esto significa que la definici贸n de la restricci贸n de la clave for谩nea no se hizo adecuadamente. A partir de la versi贸n 4.0.13 de MySQL, se puede usar la sentencia SHOW INNODB STATUS para ver una explicaci贸n detallada del 煤ltimo error que se gener贸 en relaci贸n a la definici贸n de una clave for谩nea --> Estos dos errores (el 1005 y la referencia al 150 son los que recibo). 驴Alguien puede ayudarme?Gracias de antemano.

jrelo
30 de Octubre del 2004
ya encontre la soluci贸n: antes de crear la relaci贸n, hai que crear un nuevo indice asociado al campo al que se dirige la relaci贸n en la tabla referenciada. En mi caso concreto, el c贸digo es el siguiente:
ALTER TABLE reservas ADD KEY indice_reservas(hora);
ALTER TABLE `reservas`.`reservas` ADD FOREIGN KEY `FK_reservas_1` (`hora`)
REFERENCES `horas` (`hora`)
ON DELETE CASCADE
ON UPDATE CASCADE;