Mapear / excluir duplicação de inscrição por curso do Moodle com SQL

Mapear / excluir duplicação de inscrição por curso do Moodle com SQL

por Lino Vaz Moniz -
Número de respostas: 0

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