MySQL创建触发器声明

MySQL创建触发器声明,mysql,triggers,declare,Mysql,Triggers,Declare,我正在努力完成这个问题 ** 生成一个审计跟踪(在单独的表格中),当有人试图更新学生成绩时,记录当前用户名、系统日期和成绩变化 ** 以下是表格和列 Module (code,credits,cost,name) session (code,date,room) Exam (no,code,grade) course (code,credits,name) Student (no,name,cell) 这是我到目前为止的代码 DELIMITER $$ USE `HarlemHS`$$ CR

我正在努力完成这个问题

** 生成一个审计跟踪(在单独的表格中),当有人试图更新学生成绩时,记录当前用户名、系统日期和成绩变化 **

以下是表格和列

Module (code,credits,cost,name)
session (code,date,room)
Exam (no,code,grade)
course (code,credits,name)
Student (no,name,cell)
这是我到目前为止的代码

DELIMITER $$

USE `HarlemHS`$$

CREATE
DEFINER=`HarlemHS`@`%`
TRIGGER `HarlemHS`.`ExamChange`
AFTER UPDATE ON `HarlemHS`.`Exam`
FOR EACH ROW
BEGIN 
      INSERT INTO NEW.GradeUpdateLog Date_Of_Change,old_grade) 
        VALUES (CURDATE(), grade);
    END$$
我知道我必须在某个地方使用DECLARE,但不太确定在哪里使用它以及在DECLARE语句中放置什么

如果我错过了什么让我知道


感谢您的帮助:)

只有在使用局部变量时才需要声明。你不是-你只是从导致触发器运行的记录中获取一些值,并在insert查询中使用这些值。我试图运行此操作,但收到错误1142:insert命令被拒绝给用户我被告知使用declare语句来代替?这只意味着运行此触发器的用户对您的
gradeupdatelog
表没有insert权限。啊,好的,对我应该做什么有什么建议吗?:)授予您在相应表上的harlemhs帐户插入权限。。。