MYSQL在插入触发器之前未触发
出于某种原因,MYSQL Workbench中的数据库允许我将超出范围的数据插入“占用率列”,但它不应该这样做MYSQL在插入触发器之前未触发,mysql,triggers,Mysql,Triggers,出于某种原因,MYSQL Workbench中的数据库允许我将超出范围的数据插入“占用率列”,但它不应该这样做 CREATE TABLE IF NOT EXISTS `cecsproject`.`room` ( `type` VARCHAR(45) NOT NULL, `occupancy` INT NOT NULL, `number-beds` INT NULL, `type-beds` VARCHAR(45) NULL, `price` INT NULL, PRIMA
CREATE TABLE IF NOT EXISTS `cecsproject`.`room` (
`type` VARCHAR(45) NOT NULL,
`occupancy` INT NOT NULL,
`number-beds` INT NULL,
`type-beds` VARCHAR(45) NULL,
`price` INT NULL,
PRIMARY KEY (`type`))
ENGINE = InnoDB;
DELIMITER $$
CREATE TRIGGER occupancy_check
BEFORE INSERT ON room
FOR EACH ROW
BEGIN
IF (new.occupancy > 5)
THEN SET new.occupancy = NULL;
ELSEIF (new.occupancy < 1)
THEN SET new.occupancy = NULL;
END IF;
END$$
DELIMITER ;
结果如下:
regular 0 2 full 100
非常感谢您的帮助 列
占用率
为INT非空
。那么,为什么您要尝试设置new.occupation=NULL呢?这样它就会拒绝插入。您是对的,并且它会“工作”。但我只是想。
regular 0 2 full 100