Problemas al crear una función en MySQL: Error 1064

Hace un par de días publiqué una función en MySQL que permitía contar los días entre dos fechas sin contar fines de semana. Le he usado en varios servidores pero en uno de ellos me he encontrado con un problema:

#1064 - You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax 
to use near 'IF EXISTS `workdaydiff`' at line 1 

Después de volverme loco un buen rato he encontrado la solución aquí:

Bastaba con añadir un punto y coma al delimitador, es decir, en lugar de:

DELIMITER $$

usar:

DELIMITER $$;

y, efectivamente, ha funcionado.

7 thoughts on “Problemas al crear una función en MySQL: Error 1064

  1. yo tengo un problema con esto

    CREATE TABLE `notas` (
    `id` int(11) NOT NULL auto_increment,
    `n1` int(2) NULL,
    `n2` int(2) NULL,
    `promedio` int(2) NULL,
    `grado` int(2) NOT NULL,
    `codalumno` varchar(6) NOT NULL,
    `codagc` varchar(10) NOT NULL,
    PRIMARY KEY (`id`),
    FOREIN KEY (`codalumno`) REFERENCES `Registro` (`codalumno`),
    FOREIN KEY (`codagc`) REFERENCES `asigcursosygrados` (`codagc`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

  2. @david encontraste la soluciopn ando en las mismas #1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘KEY (`codalumno`) REFERENCES `registro` (`codalumno`), FOREIN KEY (`codagc`)’ at line 10 si es asi decime roasoft@gmail.com

  3. CREATE TABLE `notas` (
    `id` int(11) NOT NULL auto_increment,
    `n1` int(2) NULL,
    `n2` int(2) NULL,
    `promedio` int(2) NULL,
    `grado` int(2) NOT NULL,
    `codalumno` varchar(6) NOT NULL,
    `codagc` varchar(10) NOT NULL,
    PRIMARY KEY (`id`),
    FOREIN KEY (`codalumno`) REFERENCES `Registro` (`codalumno`),
    FOREIN KEY (`codagc`) REFERENCES `asigcursosygrados` (`codagc`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

    tengo problema para crear esta tabla me arroja el siguente error

    #1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘) ENGINE=InnoDB DEFAULT CHARSET=latin1’ at line 12

    que sera lo que pasa podrian ayudarme agradecido de antemano

  4. no se si ya se haya resuelto este tema pero el error que tienes es que no se escribe forein si no que es foreign….. osea que quedaria esto asi:

    CREATE TABLE `notas` (
    `id` int(11) NOT NULL auto_increment,
    `n1` int(2) NULL,
    `n2` int(2) NULL,
    `promedio` int(2) NULL,
    `grado` int(2) NOT NULL,
    `codalumno` varchar(6) NOT NULL,
    `codagc` varchar(10) NOT NULL,
    PRIMARY KEY (`id`),
    FOREIGN KEY (`codalumno`) REFERENCES `Registro` (`codalumno`),
    FOREIGN KEY (`codagc`) REFERENCES `asigcursosygrados` (`codagc`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

    Espero y te haya servido mi ayuda saludos 🙂

  5. en que estoy mal 🙁

    create table “peliculas”(“Nombre Del Cine” VARCHAR(100), primary key, “Nombre De La Pelicula” varchar(100),”Tiempo” integer(200),”Categoria” varchar(100),”Sinopsis” varchar(100));

Deja un comentario