UPDATE
ON `RESPONSES`
FOR EACH ROW
BEGIN
IF old.STATUS = 0 AND (new.STATUS = 1 OR new.STATUS = 2) THEN
SET new.`SERIAL_NUM` = IFNULL(
(SELECT `SERIAL_NUM`
FROM `RESPONSES`
WHERE `SURVEY_ID` = old.`SURVEY_ID`
ORDER BY SERIAL_NUM DESC
LIMIT 0, 1),
0
) + 1;
END IF;
END;
Когда у меня несколько одновременно статусов меняется - я на дедлок натыкаюсь. Как решить эту проблему?
А что ты хочешь сделать при обновлении статуса?
Select for update можно попробовать, но не факт, что поможет.
А что триггер делать должен?
@piterden Триггер делает автоинкремент SERIAL_NUM при смене статуса на определенный
Ну так вот и проблема
Обсуждают сегодня