Mysql
 sql >> Database >  >> RDS >> Mysql

Vuoi limitare il valore di un campo MySQL a un intervallo specifico (valori decimali)

Puoi simulare un vincolo di controllo in MySQL usando i trigger.

Ad esempio, se vuoi forzare la memorizzazione di tutti i valori maggiori di 1.00 come 1.00, puoi farlo con 2 trigger come questo:

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 ;