CREATE TRIGGER trg_requirement_check_trait_insert BEFORE INSERT ON requirement WHEN NEW.req_type IN ('TRAIT','TRAIT_LEVEL_MIN') BEGIN SELECT CASE WHEN NEW.req_id IS NULL OR NOT EXISTS (SELECT 1 FROM trait WHERE id = NEW.req_id) THEN RAISE(ABORT, 'requirement.req_id must reference trait.id for TRAIT/TRAIT_LEVEL_MIN') END; END;