Código:
el problema esta al hacer el llamado CREATE PROCEDURE musica.registroUsuario (nombre VARCHAR(90), apellido VARCHAR (90), fechanacimiento DATE, pass VARCHAR(40), email VARCHAR (120), codactivacion VARCHAR (40)) BEGIN DECLARE respuesta INT; IF (SELECT COUNT(idUsuario) FROM musica.usuario WHERE emailUsuario=email)>0 THEN SET respuesta=043; ELSE INSERT INTO musica.usuario (nombreUsuario,apellidoUsuario,fechaNacUsuario,passUsuario,emailUsuario) VALUES (nombre,apellido,fechanacimiento,pass,email); SET respuesta=last_insert_id(); INSERT INTO activacionesUsuario VALUES (codactivacion,respuesta); END IF; select @respuesta; END$$
me arroja error 1045
es para un trabajo de la universidad...
aqui dejo el script completo:
Código:
de ante mano gracias SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL'; CREATE SCHEMA IF NOT EXISTS `musica` DEFAULT CHARACTER SET utf8 ; USE `musica` ; -- ----------------------------------------------------- -- Table `musica`.`usuario` -- ----------------------------------------------------- DROP TABLE IF EXISTS `musica`.`usuario` ; CREATE TABLE IF NOT EXISTS `musica`.`usuario` ( `idUsuario` INT NOT NULL AUTO_INCREMENT , `nombreUsuario` VARCHAR(90) NOT NULL , `apellidoUsuario` VARCHAR(90) NULL , `fechaNacUsuario` DATE NULL , `passUsuario` VARCHAR(40) NOT NULL , `estadoUsuario` SMALLINT NOT NULL DEFAULT 0 , `emailUsuario` VARCHAR(45) NOT NULL , PRIMARY KEY (`idUsuario`) , UNIQUE INDEX `emailUsuario_UNIQUE` (`emailUsuario` ASC) ) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `musica`.`activacionesUsuario` -- ----------------------------------------------------- DROP TABLE IF EXISTS `musica`.`activacionesUsuario` ; CREATE TABLE IF NOT EXISTS `musica`.`activacionesUsuario` ( `idActivacion` VARCHAR(40) NOT NULL , `idUsuario` INT NOT NULL , PRIMARY KEY (`idActivacion`) , INDEX `fk_activacionesUsuario_usuario` (`idUsuario` ASC) , CONSTRAINT `fk_activacionesUsuario_usuario` FOREIGN KEY (`idUsuario` ) REFERENCES `musica`.`usuario` (`idUsuario` ) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE = InnoDB; -- ----------------------------------------------------- -- procedure registroUsuario -- ----------------------------------------------------- USE `musica`; DROP procedure IF EXISTS `musica`.`registroUsuario`; DELIMITER $$ USE `musica`$$ CREATE PROCEDURE musica.registroUsuario (nombre VARCHAR(90), apellido VARCHAR (90), fechanacimiento DATE, pass VARCHAR(40), email VARCHAR (120), codactivacion VARCHAR (40)) BEGIN DECLARE respuesta INT; IF (SELECT COUNT(idUsuario) FROM musica.usuario WHERE emailUsuario=email)>0 THEN SET respuesta=043; ELSE INSERT INTO musica.usuario (nombreUsuario,apellidoUsuario,fechaNacUsuario,passUsuario,emailUsuario) VALUES (nombre,apellido,fechanacimiento,pass,email); SET respuesta=last_insert_id(); INSERT INTO activacionesUsuario VALUES (codactivacion,respuesta); END IF; select @respuesta; END$$ DELIMITER ; SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;