Чтение вашего дизайна заставило меня задуматься о том, что, возможно, проблема может заключаться в дизайне таблицы больше, чем в требовании создать ограничение / триггер.
Например, вы упоминаете, что вы можете иметь 3 типа ошибок (обнаруженная ошибка, исправленная ошибка или новая функция)
Возможно ли иметь составной ключ из двух полей, который будет иметь тип ошибки, с соответствующим полем идентификатора рядом с ним.
Так что вместо:
foundID, fixedID, newFeatureID
вы бы просто:
bugTypeID, BugID
С этим изменением вы можете просто сконцентрироваться на bugTypeID, равном 1,2 или 3.