【问题标题】:mysql error 1193 (HY00): Uknown System variable 'loopCnt'mysql错误1193(HY00):未知系统变量'loopCnt'
【发布时间】:2013-01-18 09:33:38
【问题描述】:

这是来自@Shaharsh Shah 的代码:

DELIMITER $$

DROP TRIGGER /*!50032 IF EXISTS */ trig_auto_spid$$

CREATE
/*!50017 DEFINER = 'root'@'localhost' */
TRIGGER `trig_auto_spid` AFTER INSERT ON `tapes` 
FOR EACH ROW BEGIN
    SELECT REPLACE(TSpecID, 'TS', '') INTO @counter 
    FROM Tape_Specific_ID 
    ORDER BY TSpecID DESC LIMIT 1;

    SET loopCnt = @counter + new.qty; 
    WHILE (@counter <= loopCnt) DO 
        INSERT INTO Tape_Specific_ID(TapesID, TSpecID) 
        VALUES (new.TapesID, CONCAT('TS', @counter)); 
        SET @counter:=@counter + 1;
    END WHILE; 
END;
$$

DELIMITER ;

创建此触发器时发生错误 errorr 1193 (HY00):Uknown System variable 'loopCnt',为什么?任何帮助?

【问题讨论】:

    标签: mysql sql triggers


    【解决方案1】:

    将其设为user variable

    SET @loopCnt := @counter + new.qty; 
    WHILE (@counter <= @loopCnt) DO 
    

    更新 1

    SET @counter := 10;
    SET @loopCnt := @counter + new.qty; 
    WHILE (@counter <= @loopCnt) DO 
    

    【讨论】:

    • 另外,hw cn i设置了@counter=10的初始值?
    • @NeilBryanCasinang 在SET @loopCnt.. 之前添加这一行SET @counter := 10
    【解决方案2】:

    试试

    SET @loopCnt = @counter + new.qty; 
    WHILE (@counter <= @loopCnt) DO 
    

    用户定义的变量需要在前面加上@,否则会认为是系统变量,没有定义。

    【讨论】:

    • 另外,hw cn i设置@counter=10的初始值?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    相关资源
    最近更新 更多