My function does not work for anything in this world
SQL looks like this:
- Function used to return the remaining space of a chosen folder. -
DELIMITER $$
CREATE FUNCTION tamanhoRestante (_idPasta INT)
RETURNS INT
BEGIN
DECLARE lpasTamanho INT;
DECLARE lpasUsado INT;
-- Aqui é verificado o tamanho TOTAL da pasta escolhida. --
SELECT tamanho FROM pasta WHERE idPasta = _idPasta INTO lpasTamanho;
-- E agora a verificação de todos os arquivos alocados nesta pasta. --
IF(SELECT COUNT(*) FROM usuario JOIN usuario_has_pasta WHERE idUsuario = usuario_has_pasta.Usuario_idUsuario > 0) THEN
SELECT SUM(arquivo.tamanho) FROM arquivo JOIN Pasta_has_Arquivo JOIN Pasta WHERE idArquivo = Arquivo_idArquivo AND Pasta_idPasta = _idPasta INTO lpasUsado;
ELSE SET lpasUsado = 0;
END IF;
-- Agora faz-se o retorno do tamanho total da pasta subtraindo o total utilizado --
RETURN lpasTamanho - lpasUsado;
END
$$
DELIMITER ;
In this test, the% of total% of the selected folder, and lpasTotal = Tamanho
is the sum of the size of all files linked to this folder (by% ter_%).
The lpasUsado
in the test has size 100, and Pasta_has_Arquivo
did the test with 0 and 50, but in both returns Null: /
Can anyone help me with this? I can not find the error.