SQL触发器语句错误

时间:2016-02-01 12:59:04

标签: mysql sql database-trigger

此触发器语句中出现语法错误,我不确定原因。有不同的看法,但常见错误出现在代码的第3行。其他时候我被告知第3,4和5行有错误。我应该在哪里寻找错误才能使用?

CREATE TABLE audit (
     id INT 
    current_username VARCHAR(30) NOT NULL, 
    system_date DATETIME DEFAULT NULL, 
    grade_change TINYINT DEFAULT NULL, 
    action VARCHAR(30) DEFAULT NULL 
    PRIMARY KEY (id)  
)   ENGINE=INNODB; 


DELIMITER $$ 
CREATE TRIGGER grade_audit 
    BEFORE UPDATE ON take 
    FOR EACH ROW 
        BEGIN 
            INSERT INTO audit 
            SET action = ‘update’, 
            current_username = xxx, 
            grade_change = OLD.grade, 
            system_date = NOW(); 
        END$$ 
DELIMITER ;

1 个答案:

答案 0 :(得分:0)

你遗漏了一些逗号:

id INT 
action VARCHAR(30) DEFAULT NULL

此外,您似乎使用了一些Windows单引号,在某些环境中会失败:

SET action = ‘update’,