Tema: Error 1064
Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/02/2012, 19:42
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Error 1064

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).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)