我正在尝试在现有的 MySQL 数据库中创建触发器。我要创建的触发器很简单
DELIMITER $$
CREATE TRIGGER `prmadd02_cecsproject`.`prmadd02_room_checkNumberOfBeds`
BEFORE INSERT ON `prmadd02_room`
FOR EACH ROW
BEGIN
IF NEW.number-beds < 1 OR NEW.number-beds > 3
THEN
SET @s0 = 'Number of Beds must be between 1 and 3!';
SIGNAL SQLSTATE '45000' SET message_text = @s0;
END IF;
END
$$
DELIMITER ;
但是,当我尝试执行此代码时,出现以下错误:
Error Code: 1054. Unknown column 'number' in 'NEW'
在有人问之前,不,我不能更改列名。
对此的任何帮助将不胜感激。
只需在列名中添加反引号:
DELIMITER $$
CREATE TRIGGER `prmadd02_cecsproject`.`prmadd02_room_checkNumberOfBeds`
BEFORE INSERT ON `prmadd02_room`
FOR EACH ROW
BEGIN
IF NEW.`number-beds` < 1 OR NEW.`number-beds` > 3
THEN
SET @s0 = 'Number of Beds must be between 1 and 3!';
SIGNAL SQLSTATE '45000' SET message_text = @s0;
END IF;
END
$$
DELIMITER;
用这些字符命名数据库列不是一个好习惯,因为当你运行它时,数据库认为你正在执行一个操作,所以你必须转义它才能使用它。反引号是你如何做。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句