Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-8848

Error transaccional al momento de insertar un valor con campo en blanco

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 10.0.20
    • Fix Version/s: None
    • 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

            There are no comments yet on this issue.

              People

              • Assignee:
                Unassigned
                Reporter:
                pichi009 Willy Rosal
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated: