Подскажите пожалуйста, делаю триггер
CREATE TRIGGER `updateBonusTable` AFTER UPDATE ON `character_subclasses` FOR EACH ROW BEGIN
IF(NEW.level = 85) THEN
IF(NEW.isBase = 1) THEN
INSERT into `characters_bonus_85_lvl` (`charName`) VALUES(NEW.char_obj_id);
END IF;
END IF;
END;
Мне нужно инсертить в таблицу characters_bonus_85_lvl только тот id который получил NEW.level = 85, а у меня получается он инсертить всех у кого значение = 85 в таблице character_subclasses в таблицу characters_bonus_85_lvl. Причем есть например id 123456 и поле isBase у одного = 1 у другого 123456 = 0 мне нужно только то у кого = 1, опять же игнор, инсертит всех. Что не так делаю? Мне нужно получить в таблицу characters_bonus_85_lvl только тех у кого произошло изменение.
Мне нужно получить в таблицу characters_bonus_85_lvl только тех у кого произошло изменение.
Если нужно вставлять записи только тех, у кого прошло изменение, то надо проверять не только что новое значение равно требуемому, но и что старое НЕ равно. Т.е. не
IF (NEW.level = 85)
а
IF (NEW.level = 85) AND (OLD.level != 85)
Сборка персонального компьютера от Artline: умный выбор для современных пользователей