sql >> Base de Datos >  >> RDS >> Mysql

Desea restringir el valor de un campo MySQL a un rango específico (valores decimales)

Puede simular una restricción de verificación en MySQL usando disparadores.

Por ejemplo, si desea forzar que todos los valores mayores de 1,00 se almacenen como 1,00, puede hacerlo con 2 disparadores como este:

DELIMITER $$

DROP TRIGGER IF EXISTS tr_b_ins_relationships $$

CREATE TRIGGER tr_b_ins_relationships BEFORE INSERT ON relationships FOR EACH ROW BEGIN
  IF new.relationship_level > 1
  THEN
    SET new.relationship_level = 1;
  END IF;
END $$

DELIMITER ;


DELIMITER $$

DROP TRIGGER IF EXISTS tr_b_upd_relationships $$

CREATE TRIGGER tr_b_upd_relationships BEFORE UPDATE ON relationships FOR EACH ROW BEGIN
  IF new.relationship_level > 1
  THEN
    SET new.relationship_level = 1;
  END IF;
END $$

DELIMITER ;