mysql - 创建触发器的sql语法错误

标签 mysql

我想创建触发器并且我已经编写了这个查询但是它没有执行。请检查我的查询

CREATE
    TRIGGER 'blog_after_insert' AFTER INSERT 
    ON 'blog' 
    FOR EACH ROW BEGIN

        IF NEW.deleted THEN
            SET @changetype = 'DELETE';
        ELSE
            SET @changetype = 'NEW';
        END IF;

        INSERT INTO audit (blog_id, changetype) VALUES (NEW.id, @changetype);

我收到这个错误

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''blog_after_insert' AFTER INSERT 
    ON 'blog' 
    FOR EACH ROW BEGIN

        IF NEW.del' at line 2 

最佳答案

请运行此查询

DELIMITER $$
CREATE
    TRIGGER blog_after_insert  AFTER INSERT 
    ON blog 
    FOR EACH ROW BEGIN

        IF NEW.deleted THEN
            SET @changetype = "DELETE";
        ELSE
            SET @changetype = "NEW";
        END IF;

        INSERT INTO audit (blog_id, changetype) VALUES (NEW.id, @changetype);

    END$$
DELIMITER ;

关于mysql - 创建触发器的sql语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28264291/

相关文章:

mysql - 如何转义查询中的多个引号?

c# - 帮助 sql select 语法

mysql - 如何在ruby中获取表名数组

mysql - WHERE 子句中列的 DISTINCT 值的限制,而不是行数的限制 - SQL

MySQL SEC_TO_TIME 给出 hh :mm:ss. 000000

mysql - 当数据从mysql中删除后,它所占用的空间会发生什么变化?

mysql - 未找到 javax.sql.DataSource 类型的 bean。跳过自动重新配置

mysql - 使用基于动态字段的 DATE_SUB()

mysql - 我如何使用 GROUP_CONCAT() 获得我想要的结果

php - 如何连接sql查询