如何在Moodle数据库中查询已删除课程的删除日期?
能否查询Moodle课程的删除日期?
一、通过Moodle系统界面查询(仅管理员权限)
普通师生无权限查看已删除课程,仅站点管理员或拥有moodle/course:viewdeleted权限的用户可操作:
- 进入站点管理 → 课程 → 已删除课程
- 在搜索框输入目标课程名称(比如“Mathematics 5a”)
- 列表中的「删除时间」列直接显示课程被删除的日期
二、通过Moodle数据库查询
Moodle默认不会彻底删除课程,仅标记为已删除,相关信息存储在数据库中:
1. 查找目标已删除课程的删除日期
从mdl_course表(表前缀可能因配置不同变化,比如prefix_)定位课程,deleted=1代表已删除,timemodified是删除时的Unix时间戳,可转换为可读日期:
SELECT id, fullname, shortname, FROM_UNIXTIME(timemodified) AS deleted_date FROM mdl_course WHERE fullname LIKE '%Mathematics 5a%' AND deleted = 1;
注:若使用PostgreSQL,将
FROM_UNIXTIME替换为TO_TIMESTAMP
2. 查询删除操作的详细日志(可选)
如需确认删除人等信息,关联mdl_logstore_standard_log表:
SELECT FROM_UNIXTIME(l.timecreated) AS deleted_date, u.username AS deleted_by, l.action FROM mdl_logstore_standard_log l JOIN mdl_user u ON l.userid = u.id WHERE l.contextinstanceid = [第一步查到的课程ID] AND l.action = 'delete' AND l.component = 'core_course';
注意:若课程被手动从数据库中彻底删除(非常规操作),则无法找回删除日期。
内容的提问来源于stack exchange,提问作者D-T
相关产品推荐
相关产品推荐

