Estás creando una clave compuesta (o compuesta) haciendo esto principal:
("COURSE_ID", "ACCREDITATION_BODY_ID", "DATE_OBTAINED")
y luego, intenta hacer ACCREDITATION_BODY_ID
una clave externa, que hace referencia a la misma columna en la misma tabla. No sé qué estás tratando de lograr, pero de todos modos, no la forma correcta de hacerlo.
En mi opinión, La razón es: ACCREDITATION_BODY_ID
debe ser una clave principal para que se haga referencia a ella como una clave externa, pero ese no es el caso aquí. La restricción de su tabla es una clave compuesta , y debe hacer referencia a todos las columnas en la instrucción de clave externa. (arréglame si me equivoco)
Intente hacer referencia a todas las columnas de clave compuesta en la declaración de clave externa. Eso puede resolver tu problema.
Por cierto, hacer referencia a una clave principal como clave externa en la misma tabla no tenía ningún sentido para mí (tal vez me estoy perdiendo algo, pero aún así ...). Consideraría cambiar el diseño.