次のストアド プロシージャで再帰を使用します
CREATE PROCEDURE `SP_DeleteParentDirectory`(pParentID INT,pIsFolder INT,pReferenceID INT)
BEGIN
SET @IsFolder= NULL;
SET @ChildID= NULL;
SET @ReferenceID= NULL;
IF ( pIsFolder= 2) THEN
SELECT FileID INTO @ChildID FROM filesinfo WHERE ParentID= pParentID LIMIT 1;
WHILE (@ChildID IS NOT NULL) DO
SELECT @IsFolder := filesinfo.IsFolder, @ReferenceID :=filesinfo.ReferenceID FROM filesinfo WHERE filesinfo.FileID = @ChildID;
CALL SP_DeleteParentDirectory(@ChildID,@IsFolder,@ReferenceID);
SELECT filesinfo.FileID INTO @ChildID FROM filesinfo WHERE ParentID= pParentID LIMIT 1;
END While;
END IF;
CALL SP_DeleteFileInfo(pParentID,pReferenceID);
END;;
しかし、実行しようとすると、再帰の最大制限でエラーが発生します。これにより、次のステートメントを追加する必要があります。
SET @@SESSION.max_sp_recursion_depth = 100;
このステートメントを追加せずに問題を解決できますか