Details
-
Type:
Bug
-
Status: Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 10.0.20
-
Fix Version/s: None
-
Component/s: Data Definition - Procedure
-
Labels:None
-
Environment:MariaDb para Linux Debian Jessy
Description
CREATE TABLE IF NOT EXISTS `mydb`.`Padre` (
`idPadre` INT NOT NULL ,
`nombre` VARCHAR(45) NULL ,
PRIMARY KEY (`idPadre`) )
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `mydb`.`Hijo` (
`idHijo` INT NOT NULL AUTO_INCREMENT ,
`nombre` VARCHAR(45) NULL ,
`Padre_idPadre` INT NOT NULL ,
PRIMARY KEY (`idHijo`, `Padre_idPadre`) ,
INDEX `fk_Hijo_Padre` (`Padre_idPadre` ASC) ,
CONSTRAINT `fk_Hijo_Padre`
FOREIGN KEY (`Padre_idPadre` )
REFERENCES `mydb`.`Padre` (`idPadre` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
INSERT INTO `mydb`.`Padre` (`idPadre`, `nombre`) VALUES (1, 'primero');
DELIMITER //
CREATE PROCEDURE proc_IngresarSolicitudFormulario(
npadre_ varchar(45),
nhijo_ varchar(45)
)
begin
/Handler para error SQL/
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
SELECT 'ERROR SQLEXCEPTION' as error;
ROLLBACK;
END;
/Handler para error SQL/
DECLARE EXIT HANDLER FOR SQLWARNING
BEGIN
SELECT 'ERROR SQLWARNING' as error;
ROLLBACK;
END;
START TRANSACTION;
select @id_:=idPadre from Padre where nombre like npadre_;
INSERT INTO `mydb`.`Hijo`
(
`nombre`,
`Padre_idPadre`)
VALUES
(
nhijo_,
@id_
);
COMMIT;
end
// DELIMITER ;
call proc_IngresarSolicitudFormulario('primero1','luis'); //Resultado OK - Retorna Excepción
call proc_IngresarSolicitudFormulario('primero2','luis'); //Resultado OK - Retorna Excepción
call proc_IngresarSolicitudFormulario('primero','luis'); // Resultado OK - Realiza registro
call proc_IngresarSolicitudFormulario('primero1','luis'); // Resultado !!! - No debería realizar el registro
call proc_IngresarSolicitudFormulario('primero2','luis'); // Resultado !!! - No debería realizar el registro
Gliffy Diagrams
Attachments
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions