我在我的mysql數據庫中添加了一個觸發器,但是當它被使用時它不會終止。我究竟做錯了什麼?
我的查詢,添加觸發器:mysql不終止觸發器
DROP TRIGGER IF EXISTS insertResVals;
DELIMITER $$
create trigger insertResVals
AFTER INSERT
ON lastAccess
for each row begin
DECLARE done INT;
DECLARE res varchar(50);
DECLARE val double;
DECLARE sig VARCHAR(140);
DECLARE cur1 CURSOR FOR SELECT resource, value FROM resourceDefault;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN cur1;
SET done = 0;
read_loop: LOOP
FETCH cur1 INTO res, val;
IF NOT done THEN
LEAVE read_loop;
END IF;
insert into log
select concat(NEW.playerID, ", ", res, ", ", val);
if res<>null and val<>null THEN
INSERT INTO resourceValue VALUES(NEW.playerID, res, val);
ELSE
set done = 1;
END IF;
END LOOP;
CLOSE cur1;
END $$
DELIMITER ;
非常感謝您 我試圖調試,但插入到日誌表沒有工作(我猜是因爲該交易沒有完成)。
你能用簡單的語言解釋你想用這個觸發器實現什麼邏輯嗎? – peterm
當添加一個新用戶時(通過添加到lastAccess),應該從第二個表(resourceDefault)中檢索默認值並將其添加到resourceValue –