just use a constraint:
ALTER TABLE TABLENAME
ADD CONSTRAINT CK_TABLENAME_COLUMNNAME_BETWEEN01 CHECK (
COLUMNNAME >= 0 AND COLUMNNAME <= 1
)
--
UPDATE, I did not read that you were referring to mysql... above works only in SQL server------
Unfortunately MySQL does not support SQL check constraints. You can define them for compatibility reasons but they are just ignored.
You have to create 2 trigger BEFORE INSERT
and BEFORE UPDATE
DELIMITER $$
CREATE TRIGGER `insert_trigger` BEFORE INSERT ON TABLENAME
FOR EACH ROW
BEGIN
IF NEW.COLUMNNAME not between 0.0 and 1.0 THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Decimal value out of range';
END IF;
END$$
CREATE TRIGGER `update_trigger` BEFORE UPDATE ON TABLENAME
FOR EACH ROW
BEGIN
IF NEW.COLUMNNAME not between 0.0 and 1.0 THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Decimal value out of range';
END IF;
END$$
DELIMITER ;