Note: You are currently viewing documentation for Moodle 2.5. Up-to-date documentation for the latest stable version of Moodle may be available here: Database activity FAQ.

Database activity FAQ

From MoodleDocs

Where can I download additional database presets?

See the Presets and See also sections in Building Database for various places with presets for download.

How can I add to the list of database presets available for users to choose from?

Database presets

There is one default preset, Image Gallery. It is possible to create your own presets.

When you have created your database that you desire to set as a preset; go to the "Presets" tab of the database and choose "Save as preset". Give the preset a name and the database fields and templates will now be available as a preset for the rest of the site. You will need site admin rights to do this.

Please see the Database presets for other available presets you can import into your system.

How can I create a database in which students can only view their own entries?


  • Set up the database so that entries require approval. If the entries are never approved, then only the student that added a particular entry and the teachers can view it.


  • Set the group mode of the database to "Separate groups" and assign each student to a separate group.


  • On the edit settings page, set the Maximum number of entries to most that any student would be posting and the entries required before viewing to be higher than the maximum number.

How can I enable a sort function by clicking on the field headings?

For sorting, you need to manually create the link in the template around that heading. To find the URL you need, you can do a sort using the menus and then look in the URLs. Take out everything but the d, sort and order parameters. For example,

How can I add highlighting like on the Module and plugins page?

In the repeated part of the template (note onmouseover and onmouseout to change the classes):

<tr onmouseover="this.className='trhighlight'" onmouseout="this.className='trnormal'">
 <td class="c0"><b><a href="##MoreURL##">[[Name]]</a></b></td>
 <td class="c1">[[Type]]</td>
 <td class="c2">[[Requirement]]</td>
 <td class="c3">[[Status]]</td>
 <td class="c4">[[Summary]]</td>
 <td align="center" class="c5">##Edit## ##Delete## ##More## ##Approve## </td>

In the CSS template there are two styles:

.trnormal td {
   background-color: #FFFFFF;
 .trhighlight td {
   background-color: #EEEEEE;

How can I list database information horizontally instead of vertically?

Can't get columns to line up in list view

How can I make an Encyclopedia database preset?

Is there a Time stamp for database entries?


How can I make the title of an entry into a link?

To make the title of an entry in list view link to the single view, add the following code to the list template:

<a href="##moreurl##">[[Title]]</a>

How can I make email addresses clickable?

To make email addresses clickable, add the following code to the single template:

<a href="mailto:[[Email]]">[[Email]]</a>

where 'Email' is the text field for inputting email addresses.

How can I hide a database entry which was previously approved?

There is currently no user interface for hiding a database entry which was previously approved i.e. setting it to require approval again. However, an entry can be hidden using MySQL Admin by editing it in the data_records table and changing the approved value from 1 to 0.

How can I add a default sort order of entries?

In the Fields tab, select a default sort field, choose ascending or descending then click the Save button.

Why is my database so slow to show each page?

Try to go to "Administration > Miscellaneous > XMLDB editor" and choose "Check Indexes". If you have any missing indexes found; upgrade your Moodle to the latest weekly build of your version; re-run the test; backup your site database and then run the suggested SQL from the test on your site database. This should speed up your database activity load times.

How can I prevent students from adding entries?

An override may be used to close/archive a database activity, or have a database in which only teachers can add entries, but students can view the entries.

  1. Follow the Permissions link in the settings block under Database activity administration
  2. Remove Student from the capability mod/data:writeentry by clicking the 'X' next to it.
  3. Click the continue button to confirm.

How can I empty a database / remove records from a database en masse?

If your clearance is part of a general course clear-out e.g. at rollover time, you may be better off using Reset to clear all student activity (which Moodle calls 'user data') in one go.

But if you just have one database to clear, read on.

Just one database to clear

  1. Log in, go to the Moodle area containing the database you want to clear out and Turn Editing On
  2. From the array of icons adjacent to your database to click the Duplicate icon (if in doubt, hover your mouse pointer over the icon to display a tooltip indicating what the icon does)
  3. Click through to Edit your duplicate, giving it a distinctive name to avoid confusion with the original. Then Save and return to the course area front page.
  4. You can then - assuming you have used Export to save all you need - delete the original.

Save some database records but delete others

  1. Log in, go to the area containing the database you want to clear out and Turn Editing On
  2. Click on the link to the database you want to clear
  3. From its Settings, click on Export to export all the records from your database into a CSV file; save that somewhere secure where you can find it again.
  4. Open the CSV file in e.g. a spreadsheet package, delete the records you don't want (easiest way may be to select all, unselect the ones you want to keep, then press delete) and remember to save.
  5. Then return to your Moodle area and use the Duplicate icon on the existing database to create an empty copy n.b. give it a distinctive name to avoid confusion with the original.
  6. Open up the new database, and from its Settings use Import to import the records you need into that.
  7. Test out (both viewing and adding).
  8. Once you're satisfied everything is working and you have saved all you need, you can delete the original copy.

I get an error message when importing a csv of entries

One thing to try is to open up the csv file in Excel and save it again as a csv file - with another name - and then try importing it agin. Sometimes this just works :)

See also

Using Moodle forum discussions: