Ando creando una bd en mysql pero a la hora de hacer los Fk me tira problemas cuando voy hacer la importacion a php my admin aqui les dejo el codigo para que vea, no entiendo por que pasa esto si la sintaxis es la correcta =/ espero puedan ayudarme ante todo gracias de una buena vez
Les Explico Tengo mis 2 tablas horarios y medicos , yo quiero referenciar el codigo _horario_medico de la tabla medicos al pk de la tabla t_horarios codigo_horario_mediico, pero al intentar importar mi bd a php myadmind me tira un error se los muestro abajo
tabla horarios
CREATE TABLE IF NOT EXISTS `t_horarios` (
`codigo_horario` bigint(20) NOT NULL AUTO_INCREMENT,
`hora_inicio` varchar(10) CHARACTER SET utf8 COLLATE utf8_spanish_ci DEFAULT NULL,
`hora_fin` varchar(10) CHARACTER SET utf8 COLLATE utf8_spanish_ci DEFAULT NULL,
`codigo_dia` int(11) DEFAULT NULL,
`codigo_horario_medico` int(11) DEFAULT NULL,
PRIMARY KEY (`codigo_horario`,`codigo_horario_medico`),
FOREIGN KEY (codigo_dia) REFERENCES t_dia(codigo_dia)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
tabla medicos
CREATE TABLE IF NOT EXISTS `t_medicos` (
`codigo_medico` bigint(20) NOT NULL AUTO_INCREMENT,
`codigo_especialidad` int(11) DEFAULT NULL,
`codigo_horario_medico` int(11) DEFAULT NULL,
`ci_medico` int(11) DEFAULT NULL,
`nombres_medico` varchar(150) CHARACTER SET utf8 COLLATE utf8_spanish_ci DEFAULT NULL,
`apellidos_medico` varchar(150) CHARACTER SET utf8 COLLATE utf8_spanish_ci DEFAULT NULL,
`direccion_medico` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL,
`telefono_medico` varchar(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci DEFAULT NULL,
PRIMARY KEY (`codigo_medico`),
FOREIGN KEY (codigo_horario_medico) REFERENCES t_horarios(codigo_horario_medico)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ;
El ERROR QUE ME TIRA =/ ESPERO SU AYUDA CHICOS
Error
consulta SQL:
Espero alguno tenga idea y me pueda ayudar se los agradezco ya de ante mano =D-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `t_medicos`
--
CREATE TABLE IF NOT EXISTS `t_medicos` (
`codigo_medico` BIGINT( 20 ) NOT NULL AUTO_INCREMENT ,
`codigo_especialidad` INT( 11 ) DEFAULT NULL ,
`codigo_horario_medico` INT( 11 ) DEFAULT NULL ,
`ci_medico` INT( 11 ) DEFAULT NULL ,
`nombres_medico` VARCHAR( 150 ) CHARACTER SET utf8 COLLATE utf8_spanish_ci DEFAULT NULL ,
`apellidos_medico` VARCHAR( 150 ) CHARACTER SET utf8 COLLATE utf8_spanish_ci DEFAULT NULL ,
`direccion_medico` VARCHAR( 150 ) COLLATE utf8_unicode_ci DEFAULT NULL ,
`telefono_medico` VARCHAR( 20 ) CHARACTER SET utf8 COLLATE utf8_spanish_ci DEFAULT NULL ,
PRIMARY KEY ( `codigo_medico` ) ,
FOREIGN KEY ( codigo_horario_medico ) REFERENCES t_horarios( codigo_horario_medico )
) ENGINE = INNODB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci AUTO_INCREMENT =2;
MySQL ha dicho: Documentación
#1215 - Cannot add foreign key constraint