簡體   English   中英

獲取錯誤代碼:創建觸發器時出現1064

[英]Getting Error code: 1064 while creating trigger

我正在創建觸發器,但顯示以下錯誤:

        15:22:44    create trigger trigger3 before update on test.testdata    
    for each row  
    begin      
    if new.qty < 50 then         
    SIGNAL SQLSTATE VALUE '99999'       
    SET MESSAGE_TEXT = 'An error occurred';       
    end if;    
    end;    
    Error Code: 1064. You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version for the right syntax to use near 'SQLSTATE VALUE '99999'       
SET MESSAGE_TEXT = 'An error occurred';       
end i' at line 8    0.000 sec

我的觸發代碼是:

delimiter //

create trigger trigger3 before update on test.testdata

for each row 
begin

if new.qty < 50 then

    SIGNAL SQLSTATE VALUE '99999'
      SET MESSAGE_TEXT = 'An error occurred';

end if;

end;

//
delimiter ;

在此處輸入圖片說明

MySQL 6.0系列已於2009停產 (從未達到生產級別的發布)。

顧名思義,版本6.0.0-alpha-community-nt-debug是Alpha發行版的調試版本,因此,它實際上是供MySQL項目的貢獻者執行新版本的早期測試。 這當然應該在生產系統中使用。 您是從哪里來的?

查找v6.0的文檔有些困難,因為它早已從MySQL網站上刪除了。 但是,Oracle網站上有一個檔案SIGNAL的文檔中指出:

該語句是在MySQL 6.0.11中添加的。

因此,您將無法在此版本的MySQL上使用SIGNAL 如果需要引發錯誤,則可以執行故意錯誤的語句,例如調用不存在的過程:

CALL error();

但是,如果從上述內容來看並不清楚,那么您確實應該升級到穩定的生產就緒(“通用發行版”)MySQL服務器版本,例如v5.6.14(盡管版本號較低,實際上是最新版本)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM