0
我一直在這一整天,試圖在MYSQL中得到一個簡單的存儲過程,像我想要的那樣工作。 這是存儲過程我使用:MYSQL存儲過程不更新列
delimiter $$
CREATE DEFINER=`vhabot`@`%` PROCEDURE `Update_Players`(in uid VARCHAR(64), in cname varchar(45),in rank_name varchar(20), in clevel int, in defrank int, in cfaction varchar(15), in org varchar(100), in today date)
BEGIN
DECLARE Records INT;
DECLARE Updt bool DEFAULT 'TRUE';
SET SQL_SAFE_UPDATES=0;
SELECT COUNT(*) INTO Records FROM dim5players where TRIM(id) = TRIM(uid);
If Records = 0 THEN
INSERT INTO dim5players (id, `name`, rank_name, `level`, defender_rank_id, Organization, `Date`, Updated)
VALUES (uid,cname, rank_name, clevel, defrank, cfaction, org, today, Updt);
END IF;
UPDATE dim5players SET Updated=true WHERE `name` = TRIM(cname);
END$$
所有我希望它做的是檢查,如果一個ID(主鍵)已經通過使用計數可能有ID的記錄存在。如果計數爲0,則可以使用上面的輸入參數添加記錄。
無論是否插入記錄,我希望所有具有與名稱輸入相匹配的'名稱'的記錄在更新的列中被賦予'true'。
無論我做什麼,它都不會更新更新列中的「真實」值。在這個SP的某處是不對的。我只是不確定它在哪裏。