Mysql
 sql >> Base de données >  >> RDS >> Mysql

Vous souhaitez restreindre la valeur d'un champ MySQL à une plage spécifique (valeurs décimales)

Vous pouvez simuler une contrainte de vérification dans MySQL à l'aide de déclencheurs.

Par exemple, si vous souhaitez forcer toutes les valeurs supérieures à 1,00 à être stockées en tant que 1,00, vous pouvez le faire avec 2 déclencheurs comme celui-ci :

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 ;