[英]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.