MySQL: Trigger in wrong schema [closed]

不羁岁月 提交于 2019-12-30 09:59:33

问题


delimiter //
CREATE TRIGGER `range` BEFORE INSERT ON touristCompany.hotels
FOR EACH ROW 
    BEGIN
        IF NEW.star >5 THEN
            SET NEW.star = 5;
        ELSEIF NEW.star < 1 THEN
            SET NEW.star = 1;
        END IF;

    END;//
delimiter ;

回答1:


You need to create the trigger within the same schema/database where the insert operation is happening. From your trigger definition it's obvious that trigger operation will be under touristCompany database. Make sure you are creating the trigger under same database.

Modify your trigger definition like below

delimiter //
CREATE TRIGGER `touristCompany`.`range` 
BEFORE INSERT ON `touristCompany`.`hotels`
FOR EACH ROW 
    BEGIN
        IF NEW.star > 5 THEN
            SET NEW.star = 5;
        ELSEIF NEW.star < 1 THEN
            SET NEW.star = 1;
        END IF;

    END;//
delimiter ;

(OR) Select the database before creating trigger

USE `touristCompany`;

delimiter //
CREATE TRIGGER `range` ...
<rest of code here>


来源:https://stackoverflow.com/questions/26735010/mysql-trigger-in-wrong-schema

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!