Tema: Error 1064
Ver Mensaje Individual
  #7 (permalink)  
Antiguo 11/02/2012, 07:27
Feligo
 
Fecha de Ingreso: agosto-2011
Mensajes: 100
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: Error 1064

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Mas o menos: Es toda restricción definida con un nombre, y cuando le pones el REFERENCES estás intentando crear una FOREIGN KEY, que por definición es una CONSTRAINT. Pero como la estás poniendo incompleta, te da error.
Si le pones el FOREIGN KEY como te lo indico, la CONSTRAINT se creará y MySQL le pondrá un nombre por si mismo.
Quedará algo así como
Código MySQL:
Ver original
  1. CREATE TABLE `id_plan_entreno` (
  2.   `id_plan` int(11) NOT NULL auto_increment,
  3.   `fecha` date NOT NULL,
  4.   `vigente` tinyint(1) NOT NULL,
  5.   `id_cliente` int(10) NOT NULL,
  6.   PRIMARY KEY  (`id_plan`),
  7.   KEY `id_cliente` (`id_cliente`),
  8.   CONSTRAINT `id_plan_entreno_ibfk_1` FOREIGN KEY (`id_cliente`) REFERENCES `usuario` (`id_cliente`)

MySQL completa partes de la sentencia cuando el resto está sintácticamente bien. Pero lo que estás poniendo está mal redactado desde inicio.
La cláusula CONSTRAINT se usa para definir el nombre con el que el objeto FK se creará y no pueden repetirse dentro de la misma base de datos.
Lee el manual de referencia de MySQL antes de seguir (MySQL AB MySQL 5.0 Reference Manual).
Muchas gracias, ahora me corre sin mayores problemas... le daré una mirada a lo que me dices, saludos.