MySQL 错误代码:1193。未知的系统变量

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/14678934/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-31 16:24:08  来源:igfitidea点击:

MySQL Error Code: 1193. Unknown system variable

mysqlmysql-workbencherror-codemysql-error-1193

提问by FrancescoN

Ok so i'm working on triggers, and it tells me it(MySQL workbench 5.2) doesn't recognize this variable.
*Error Code: 1193. Unknown system variable error_msg_3*

好的,所以我正在研究触发器,它告诉我它(MySQL 工作台 5.2)无法识别这个变量。
*错误代码:1193。未知系统变量error_msg_3*

I think it would be correct using it in a trigger, please help me

我认为在触发器中使用它是正确的,请帮助我

CREATE TRIGGER controlla_MaxCARDINALITA_INSERT
BEFORE INSERT ON SENTIERO__HA__TAPPA
FOR EACH ROW 
BEGIN

DECLARE max_cardinalita INTEGER;
DECLARE error_msg_3 CONDITION FOR SQLSTATE '99003';

SELECT COUNT(*) into max_cardinalita
FROM SENTIERO__HA__TAPPA
WHERE IDsentiero=NEW.IDsentiero;

IF max_cardinalita>=10 THEN
        SIGNAL error_msg_3;
        SET error_msg_3='INSERT: Il sentiero ha già il massimo numero di tappe consentito';

END IF;

END$$

EDIT ::

编辑 ::

I tried this, and it seems working

我试过这个,它似乎工作

DECLARE msg VARCHAR(255);
set msg = concat('MyTriggerError: Trying to insert a negative value in trigger_test: ');
signal sqlstate '45000' set message_text = msg;

采纳答案by hjpotter92

According to MySQL docs, the error #1193occurs when you use wrong code for SQLSTATE.

根据MySQL 文档#1193当您对SQLSTATE.

Message: Unknown system variable %s

消息:未知的系统变量%s

And, as you can see on the same page, the SQLSTATE 99003is not defined.

而且,正如您在同一页面上看到的,99003未定义SQLSTATE 。