我寫了一個存儲函數,它遞歸地調用自己。MySQL不支持遞歸函數?爲什麼?從何時起?
然而,當我在查詢運行它,我得到這個無恥的錯誤:
Error: 1424 SQLSTATE: HY000 (ER_SP_NO_RECURSION)
Message: Recursive stored functions and triggers are not allowed.
「不允許」?
沒錯。爲什麼我們不只是禁用WHILE循環,而我們還在?
我可以以任何方式啓用遞歸函數嗎?
我找到bug report,但是有沒有解決方法?
我在Windows XP(XAMPP服務器)上運行MySQL 5.1.41。
數據庫用於檢索數據,而不是用於編程。您是否有理由試圖在存儲過程中而不是在應用程序中執行復雜的,難以預測或優化的邏輯? – Borealid 2010-08-21 06:00:03
http://stackoverflow.com/questions/3438111/mysql-stored-procedure-that-calles-itself-recursively – Novemberland 2010-08-21 06:05:22
無恥的錯誤!有一種方法可以啓用遞歸函數;你必須修改MySQL代碼才能使它們工作。 – 2010-08-21 06:36:43