O comando a seguir mapeia se há duplicidade de inscrição do aluno no curso
SELECT userid,COUNT(userid) AS countrecord FROM mdl_role_assignments WHERE roleid=5 AND contextid IN (SELECT id FROM mdl_context WHERE contextlevel=50 AND instanceid=?) GROUP by userid HAVING COUNT(userid)>1
Passe o parâmetro id do curso em instanceid=?
Extrair id do usuário duplicado
SELECT * FROM mdl_role_assignments WHERE roleid=5 AND contextid IN (SELECT id FROM mdl_context WHERE contextlevel=50 AND instanceid=?) AND userid=?
haverá duplicação se retornar mais de um registro
Passe o parâmetro id do curso em instanceid=?
Passe o parâmetro id do usuário em userid=?
Apagar usuário duplicado
DELETE FROM mdl_role_assignments WHERE id=?
Passe o parâmetro id da matrícula id=?
O parâmetro id da matrícula deve ser extraído do resultado da consulta do usuário duplicado