簡體   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