74 lines
2.1 KiB
SQL
74 lines
2.1 KiB
SQL
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 NEW.SUBCTA <=> '' THEN
|
|
SET NEW.SUBCTA = NULL;
|
|
END IF;
|
|
IF NEW.SUBCTA IS NOT NULL AND NOT LENGTH(NEW.SUBCTA) <=> 10 THEN
|
|
CALL util.throw('INVALID_STRING_LENGTH');
|
|
END IF;
|
|
END IF;
|
|
IF NOT NEW.CONTRA <=> OLD.CONTRA THEN
|
|
IF NEW.CONTRA <=> '' THEN
|
|
SET NEW.CONTRA = NULL;
|
|
END IF;
|
|
IF NEW.CONTRA IS NOT NULL AND NOT LENGTH(NEW.CONTRA) <=> 10 THEN
|
|
CALL util.throw('INVALID_STRING_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 NEW.SUBCTA <=> '' THEN
|
|
SET NEW.SUBCTA = NULL;
|
|
END IF;
|
|
IF NEW.SUBCTA IS NOT NULL AND NOT LENGTH(NEW.SUBCTA) <=> 10 THEN
|
|
CALL util.throw('INVALID_STRING_LENGTH');
|
|
END IF;
|
|
IF NEW.CONTRA <=> '' THEN
|
|
SET NEW.CONTRA = NULL;
|
|
END IF;
|
|
IF NEW.CONTRA IS NOT NULL AND NOT LENGTH(NEW.CONTRA) <=> 10 THEN
|
|
CALL util.throw('INVALID_STRING_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 ;
|
|
|