MySQL函数不能正确返回选择值

时间:2016-04-10 16:02:40

标签: mysql

我创建了一个mysql函数,如果存在则返回值,否则插入并返回id。我的函数只能工作并返回插入记录的id,但是如果存在则总是返回0(在这种情况下,它应该返回id)。但是,在函数外部执行时,SQL工作正常。

DELIMITER $$
CREATE FUNCTION `GETSTOREID`(offer_id INT(5), affid INT(5), store VARCHAR(100)) RETURNS INT(5)
BEGIN
        DECLARE STOREID INT(5);

        IF EXISTS (SELECT store_id FROM `ccn_stores` WHERE `storeID` = offer_id AND `affiliate_id` = affid)
        THEN
        SET STOREID = (SELECT store_id FROM `ccn_stores` WHERE `storeID` = offer_id AND `affiliate_id` = affid);
    ELSE
        INSERT IGNORE INTO `ccn_stores` (`affiliate_id`, `storeID`, `store_name`) VALUES (affid, offer_id, store);
        SET STOREID = LAST_INSERT_ID();
        INSERT IGNORE INTO `ccn_store_configuration` (`store_id`) VALUES (STOREID);
    END IF;

        RETURN STOREID;
    END$$

DELIMITER ;

0 个答案:

没有答案