2011-03-08 46 views
1
SELECT COUNT(*) INTO @count FROM `tableName` WHERE `id` = OLD.id; 

WHILE @count > -1 DO 
    SET @count = @count - 1; 
    /* loop logic in here */ 
END WHILE; 

我有這樣的SQL,但是當我運行它,我得到一個錯誤(SQL語法),MySQL的說,是附近的WHILE @count > -1 DO SET @count = @count - 1;。我試過在BEGIN ... END;區塊中打包,但完全不影響它。MySQL的While循環拋出一個錯誤

由於MySQL的出色模糊錯誤,我無法弄清楚我做錯了什麼。

我確定這很簡單,但是很晚,我無法在我的生活中發現它。

+0

是不是@count類型'table'而不是int?我想你想使用'select @ count = count(*)from tableName ...' – mellamokb 2011-03-08 02:39:55

+0

你如何運行這段代碼?從我看到它應該在觸發器體內。 – a1ex07 2011-03-08 02:41:39

回答

5

您不能在mysql客戶端命令行中運行此代碼。您可以在存儲過程/函數或觸發器的主體中使用複合語句