bcom/sql/deleteMessage.sql

47 lines
813 B
SQL

DROP PROCEDURE IF EXISTS DeleteMessage;
DELIMITER //
CREATE PROCEDURE DeleteMessage
(
IN p_sid INT,
IN p_password TEXT,
IN p_mid INT,
OUT outputCode INT,
OUT did INT
)
MODIFIES SQL DATA
BEGIN
CALL `CheckIdLogin`(p_sid,p_password, outputCode);
IF outputCode = 42 THEN
SET outputCode :=(
SELECT
(
CASE
WHEN(
SELECT
COUNT(*)
FROM
messages
WHERE
ID = p_mid
) = 1 THEN 2010
ELSE 42
END
)
);
IF outputCode = 42 THEN
SET did :=(SELECT discussionID FROM messages WHERE ID = p_mid);
SET @authorizedGroupID :=(SELECT authorizedGroupID FROM discussions WHERE ID=did);
CALL `CheckInGroup`(p_sid, @authorizedGroupID, outputCode);
IF outputCode = 42 THEN
DELETE FROM messages WHERE ID = p_mid;
END IF;
END IF;
END IF;
END//
DELIMITER ;