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