要麼你必須創建一個功能檢查數據是否存在等或你必須使用OUT類型參數的程序,使用IF條件變量。
功能
DELIMITER $$
DROP FUNCTION IF EXISTS `fn_CheckExist`$$
CREATE FUNCTION `fn_CheckExist`(p_id1 INT, p_id2 INT) RETURNS BOOL CHARSET latin1
READS SQL DATA
BEGIN
DECLARE _result BOOL DEFAULT FALSE;
IF EXISTS(SELECT 1 FROM tbl1 WHERE Id1 = p_Id1 AND Id2 = p_Id2 LIMIT 1)
THEN SET _result = TRUE;
ELSE SET _result = FALSE;
RETURN _result;
END$$
DELIMITER ;
SP
DECLARE _result BOOL DEFAULT FALSE;
SELECT fn_CheckExist(id1, id2) INTO _result;
IF(_result) THEN
/* Your Code Snippet*/
ELSE
/* Your Code Snippet*/
END IF;
,或通過步驟
CREATE PROCEDURE `sp_CheckExist`(IN p_Id1 INT, IN p_Id2 INT, OUT _result BOOL)
BEGIN
IF EXISTS(SELECT 1 FROM tbl1 WHERE Id1 = p_Id1 AND Id2 = p_Id2 LIMIT 1)
THEN SET _result = TRUE;
ELSE SET _result = FALSE;
END IF;
END
2nd SP
DECLARE _result BOOL DEFAULT FALSE;
CALL SP_CheckExist(id1,id2,_result);
if(_result) then
/* Your Code Snippet*/
else
/* Your Code Snippet*/
end if;
我們可以看到SP_CheckExist的代碼嗎? – berty
錯誤消息是相關的。他們不在那裏煩惱。請閱讀它們!無論如何,你是如何編寫一個存儲過程來返回*什麼的?函數返回的東西,程序不。 –
SP_CheckExist應該是一個函數,而不是一個過程。過程不返回值。你可以在程序中使用out參數。 – 2012-12-19 08:50:58