繁体   English   中英

在基于条件的Mysql触发器中使用Select INTO语句

[英]Using Select INTO Statement in Mysql Trigger based on If Condition

我想写一个触发器。 触发器以以下方式工作:

当表R_published获取一个新条目时,根据条目(R_published.whichPublishable)中的列值,它需要将行分别从project_task_goodread_master表或project_document_master表复制到R_publishedGoodReads或R_publishedDocuments表中。

我编写了以下触发器,但出现了错误:“#1327-未声明的变量:R_publishedGoodReads”

CREATE TRIGGER trigger_after_published

    AFTER INSERT ON R_published

    FOR EACH ROW

    BEGIN

    IF (NEW.whichPublishable=1) THEN

        SELECT *  INTO R_publishedGoodReads FROM project_task_goodread_master 
WHERE

 goodReadID= new.publishedItemId;

    ELSEIF (NEW.whichPublishable=2) THEN 

      SELECT * INTO R_publishedDocuments FROM project_document_master where 

 documentID=new.publishedItemId;

      END IF 

END 

语法有什么问题吗? 我需要声明要用于插入的表名吗? 谢谢。

MySQL不支持SELECT ... INTO TABLE。 参见MySQL文档

请尝试:

IF (NEW.whichPublishable=1) THEN
    INSERT INTO R_publishedGoodReads (col1, col2...)
    SELECT col1, col2... FROM project_task_goodread_master 
    WHERE goodReadID= new.publishedItemId;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM