我创建了一个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 ;