Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Deseja restringir o valor de um campo MySQL a um intervalo específico (valores decimais)


Você pode simular uma restrição de verificação no MySQL usando gatilhos.

Por exemplo, se você deseja forçar que todos os valores maiores que 1,00 sejam armazenados como 1,00, você pode fazer isso com 2 gatilhos 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 ;