0

我在我的 mysql 触发器中声明了一些变量

DELIMITER //
CREATE TRIGGER lestrigger
    AFTER INSERT ON examinations
   FOR EACH ROW
  BEGIN
    DECLARE the_last_inserted_id INT ;
    DECLARE the_class_id INT;
    DECLARE the_year_id INT;

    SET the_last_inserted_id = LAST_INSERT_ID();
    SET the_class_id = select examination_class_id from examinations where examination_id = the_last_inserted_id;
    SET the_year_id = select examination_class_year_id from examinations where examination_id = the_last_inserted_id;

    insert into examination_data (ed_cs_id,ed_examination_id) select cs_id from class_students where cs_class_id = the_class_id AND cs_year_id = the_year_id,the_last_inserted_id;

END
  //
DELIMITER ;

但我不断收到此错误

/* SQL 错误 (1064): 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法,以便在第 10 行的“从考试中选择考试类别 ID 中使用考试类别 ID = the_last_in” */

我在语法上使用变量的方式是否正确?

4

1 回答 1

0

使用INTO关键字http://dev.mysql.com/doc/refman/5.0/en/select-into.html

select examination_class_id into the_class_id from examinations where examination_id = the_last_inserted_id;
select examination_class_year_id into the_year_id from examinations where examination_id = the_last_inserted_id;
于 2013-07-21T17:22:41.590 回答