Vytváříte složený (nebo složený) klíč tím, že toto uděláte jako primární:
("COURSE_ID", "ACCREDITATION_BODY_ID", "DATE_OBTAINED")
a poté se pokusíte vytvořit ACCREDITATION_BODY_ID
cizí klíč odkazující na stejný sloupec ve stejné tabulce. Nevím, čeho se snažíte dosáhnout, ale každopádně to není správný způsob, jak to udělat.
Dle mého názoru Důvod je: ACCREDITATION_BODY_ID
musí být primární klíč, aby se na něj odkazovalo jako na cizí klíč, ale v tomto případě tomu tak není. Omezení vaší tabulky je složený klíč a musíte uvést všechny sloupce v příkazu cizího klíče. (opravte mě, pokud se mýlím)
Zkuste odkazovat na všechny sloupce složeného klíče v příkazu cizího klíče. To může vyřešit váš problém.
Mimochodem, odkazování na primární klíč jako na cizí klíč ve stejné tabulce mi nedávalo žádný smysl (možná mi něco chybí, ale stejně ..). Zvážil bych změnu designu.