quinta-feira, 11 de novembro de 2010

Mudar Curso de Categoria com Comando SQL

Caso você precise mudar a categoria de um curso sem ser via interface gráfica do Moodle, certamente vai ter que escrever um comando SQL para executar diretamente no banco de dados do Moodle ou dentro de uma linguagem de programação.

Mudar a categoria de curso do Moodle em nível de banco de dados é mudar  o valor do  campo category da tabela mdl_course. Esse campo é uma chave estrangeira da tabela mdl_course_categories.

Comando SQL para mudar curso de categoria:

UPDATE mdl_course SET category=? WHERE id=?

Passe o parâmetro id da nova categoria em category=? e id do curso em id=?

Você pode mudar um conjunto de curso de categoria com base em uma determinada condição. Por exemplo, todos os cursos que não tiverem nenhum aluno inscrito (matriculado) devem ser transferidos para uma determinada categoria. Nesse caso, deve ser feita uma subconsulta como segue abaixo.

Comando SQL para mudar curso de categoria se não tiver aluno matriculado:

UPDATE mdl_course SET category=? WHERE id NOT IN (SELECT DISTINCT c.instanceid FROM mdl_context c INNER JOIN mdl_role_assignments rs ON rs.contextid= c.id WHERE c.contextlevel=50 AND rs.roleid=5)

Passe o parâmetro id da nova categoria em category=?

Nessa consulta, diferente da anterior, os parâmetros id dos cursos virão da sub consulta. O comando NOT IN filtra apenas os cursos que não têm aluno matriculado.

    Agora que você já sabe o comando SQL para mover o curso de uma categoria para outra, só falta executar o comando.  Caso estiver usando uma linguagem de programação para executar SQL,boa programação.

Nenhum comentário:

Postar um comentário