03/06/2011, 21:16
|
| | Fecha de Ingreso: octubre-2009
Mensajes: 23
Antigüedad: 15 años, 3 meses Puntos: 0 | |
procedimiento de registro de usuario, aun no me corre tengo un problemita al intentar ejecutar el siguiente procedimiento almacenado:
Código:
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$$
el problema esta al hacer el llamado
me arroja error 1045
es para un trabajo de la universidad...
aqui dejo el script completo:
Código:
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;
de ante mano gracias |