在触发器中运行if-else块-MySQL

在触发器中运行if-else块-MySQL,mysql,database-trigger,Mysql,Database Trigger,我想创建一个逻辑(if-else)MySQL触发器。我正在使用phpMyAdminGUI创建一个触发器。但是当我试图保存触发器时,我得到了SQL错误 下面是我想在触发器中运行的代码: DECLARE id integer; DECLARE changelogid integer; SET @id = INSERT INTO `test_assessment_data_changelog`(assignment_id, parameter_id, assessor_id, assessment

我想创建一个逻辑(if-else)MySQL触发器。我正在使用phpMyAdminGUI创建一个触发器。但是当我试图保存触发器时,我得到了SQL错误

下面是我想在触发器中运行的代码:

DECLARE id integer;
DECLARE changelogid integer;

SET @id = INSERT INTO `test_assessment_data_changelog`(assignment_id,
 parameter_id, assessor_id, assessment_value) 
values(1, 1, 101, 'new');

SET @changelogid = SELECT `id` FROM `test_assesseement_data` 
WHERE `changelog_id` = @id;

IF @changelogid=null THEN
   UPDATE `test_assesseement_data`
    SET `value` = 'new' WHERE `changelog_id` = @changelogid;
ELSE
   INSERT INTO `test_assesseement_data`(`changelog_id`,
    `value`) values(@changelogid, 'new');
END IF;

谢谢

您是否需要始终使用at符号引用已声明的会话变量,即
@changelogid
?TBH我第一次写入触发器。我只是想用一些变量。我在许多教程中发现了@语法用于声明变量,所以我使用了它。有@或没有@,都会出现相同的错误。请你把所有的触发代码都包括进去,设置@id=INSERT到底是为了什么?