0

此触发器语句上出现语法错误,我不确定原因。对此有不同的看法,但常见的错误出现在代码的第 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 ;
4

1 回答 1

0

您缺少一些逗号:

id INT 
action VARCHAR(30) DEFAULT NULL

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

SET action = ‘update’, 
于 2016-02-01T13:33:39.157 回答