Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL在插入触发器之前未触发_Mysql_Triggers - Fatal编程技术网

MYSQL在插入触发器之前未触发

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

出于某种原因,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,
  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