refs #4951 changed triggers and added checkLength
gitea/salix/pipeline/head There was a failure building this commit
Details
gitea/salix/pipeline/head There was a failure building this commit
Details
This commit is contained in:
parent
949c73a465
commit
f499311a16
|
@ -0,0 +1,83 @@
|
||||||
|
DROP TRIGGER IF EXISTS vn.XDiario_beforeUpdate;
|
||||||
|
USE vn;
|
||||||
|
|
||||||
|
DELIMITER $$
|
||||||
|
$$
|
||||||
|
CREATE DEFINER=`root`@`localhost` TRIGGER `vn`.`XDiario_beforeUpdate`
|
||||||
|
BEFORE UPDATE ON `XDiario`
|
||||||
|
FOR EACH ROW
|
||||||
|
BEGIN
|
||||||
|
IF NOT NEW.SUBCTA <=> OLD.SUBCTA THEN
|
||||||
|
IF NOT util.checkLength(NEW.SUBCTA, 10) THEN
|
||||||
|
CALL util.throw('INVALID_LENGTH');
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
IF NOT NEW.CONTRA <=> OLD.CONTRA THEN
|
||||||
|
IF NOT util.checkLength(NEW.CONTRA, 10) THEN
|
||||||
|
CALL util.throw('INVALID_LENGTH');
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
IF NOT NEW.FECHA <=> OLD.FECHA THEN
|
||||||
|
CALL XDiario_checkDate(NEW.FECHA);
|
||||||
|
END IF;
|
||||||
|
IF NOT NEW.FECHA_EX <=> OLD.FECHA_EX THEN
|
||||||
|
CALL XDiario_checkDate(NEW.FECHA_EX);
|
||||||
|
END IF;
|
||||||
|
IF NOT NEW.FECHA_OP <=> OLD.FECHA_OP THEN
|
||||||
|
CALL XDiario_checkDate(NEW.FECHA_OP);
|
||||||
|
END IF;
|
||||||
|
IF NOT NEW.FECHA_RT <=> OLD.FECHA_RT THEN
|
||||||
|
CALL XDiario_checkDate(NEW.FECHA_RT);
|
||||||
|
END IF;
|
||||||
|
IF NOT NEW.FECREGCON <=> OLD.FECREGCON THEN
|
||||||
|
CALL XDiario_checkDate(NEW.FECREGCON);
|
||||||
|
END IF;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
|
||||||
|
DROP TRIGGER IF EXISTS vn.XDiario_beforeInsert;
|
||||||
|
USE vn;
|
||||||
|
|
||||||
|
DELIMITER $$
|
||||||
|
$$
|
||||||
|
CREATE DEFINER=`root`@`localhost` TRIGGER `vn`.`XDiario_beforeInsert`
|
||||||
|
BEFORE INSERT ON `XDiario`
|
||||||
|
FOR EACH ROW
|
||||||
|
BEGIN
|
||||||
|
IF NOT util.checkLength(NEW.SUBCTA, 10) THEN
|
||||||
|
CALL util.throw('INVALID_LENGTH');
|
||||||
|
END IF;
|
||||||
|
IF NOT util.checkLength(NEW.CONTRA, 10) THEN
|
||||||
|
CALL util.throw('INVALID_LENGTH');
|
||||||
|
END IF;
|
||||||
|
CALL XDiario_checkDate(NEW.FECHA);
|
||||||
|
CALL XDiario_checkDate(NEW.FECHA_EX);
|
||||||
|
CALL XDiario_checkDate(NEW.FECHA_OP);
|
||||||
|
CALL XDiario_checkDate(NEW.FECHA_RT);
|
||||||
|
CALL XDiario_checkDate(NEW.FECREGCON);
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
|
||||||
|
DROP FUNCTION IF EXISTS `util`.`checkLength`;
|
||||||
|
|
||||||
|
DELIMITER $$
|
||||||
|
$$
|
||||||
|
CREATE DEFINER=`root`@`localhost` FUNCTION `util`.`checkLength`(vString VARCHAR(10), vLength INT(11)) RETURNS tinyint(1)
|
||||||
|
DETERMINISTIC
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Comprueba la longitud de un string
|
||||||
|
*
|
||||||
|
* @param vString String a comprobar
|
||||||
|
* @param vLength Longitud que debe tener
|
||||||
|
* @return Devuelve TRUE/FALSE en caso de que tenga la longitud correcta o no
|
||||||
|
*/
|
||||||
|
IF LENGTH(vString) <=> vLength THEN
|
||||||
|
RETURN TRUE;
|
||||||
|
END IF;
|
||||||
|
RETURN FALSE;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
||||||
|
|
Loading…
Reference in New Issue