3

わかりましたので、トリガーに取り組んでいますが、(MySQL ワークベンチ 5.2) がこの変数を認識しないことがわかります。
*エラー コード: 1193。不明なシステム変数 error_msg_3*

トリガーで使用するのは正しいと思います。助けてください

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$$

編集 ::

私はこれを試しましたが、うまくいっているようです

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

1 に答える 1

3

MySQLのドキュメントによると、#1193に間違ったコードを使用するとエラーが発生しますSQLSTATE

メッセージ:不明なシステム変数%s

また、同じページでわかるように、SQLSTATE99003は定義されていません。

于 2013-02-04T00:46:32.497 に答える