带有Sequel Pro的MySQL触发器



这是我第一次尝试使用触发器,我只是快速地做了一些测试,但它给了我一个错误。这是我的触发器(设置为AFTER INSERT)

IF NEW.controller = 'index' THEN
    SET @controller = 'index';
ELSE
    SET @controller = 'other';
END IF;
INSERT INTO 'logs'
    ( staff_id, table_name, table_id, controller )
VALUES
    ( NEW.staff_id, 'acl', NEW.id, @controller );

我得到以下错误:

MySQL表示:您的SQL语法有错误;查看手册对应于您的MySQL服务器版本,以获得正确的语法在'INSERT INTO'logs'附近使用(staff_id,table_name,table_id,控制器)值(第7行处的新值

怎么了?

您可以试试这个(只需从表名中删除引号):

INSERT INTO logs
    ( staff_id, table_name, table_id, controller )
VALUES
    ( NEW.staff_id, 'acl', NEW.id, @controller );

或者你可以使用回溯

INSERT INTO `logs`
    ( staff_id, table_name, table_id, controller )
VALUES
    ( NEW.staff_id, 'acl', NEW.id, @controller );

最新更新