Я добавил триггер в свою базу данных 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 –