Manual:Watchlist table

The watchlist table for each registered user contains his or her id and for all the pages the user watching>m:Special:MyLanguage/Help:Watching pages|watches, the namespace number, the page title without namespace, and a notification timestamp, used for notification>Special:MyLanguage/Manual:page change notification|page change notification.

Note: MediaWiki works with the assumption that when people watch pages they either watch both the talk page and the normal page, or neither. That means that for each watched page MediaWiki always automatically adds two entries: One for the page and one for its talk page. E.g. when the user watches the Main Page, then there will be two rows in the database table: One for the Main Page in namespace 0 and one for the Main Page in namespace 1 (which is the according talk page). Missing page rows are added by the maintenance script update.php.

wl_user
This is the key to .

wl_namespace
This is the key to .

wl_title
This is the key to .

wl_notificationtimestamp
This is the timestamp when the user was last sent a config>Special:MyLanguage/Manual:Configuration_settings#Email_notification_.28Enotif.29_settings|notification email; it is cleared when the user visits the page.

Schema summary
(Current as of v1.23.)

"DESCRIBE watchlist;" in version 1.19 gives the following: mysql> DESCRIBE mw_watchlist; +--+--+--+-+-+---+ +--+--+--+-+-+---+ +--+--+--+-+-+---+ 4 rows in set (0.00 sec)
 * Field                   | Type             | Null | Key | Default | Extra |
 * wl_user                 | int(10) unsigned | NO   | PRI | NULL    |       |
 * wl_namespace            | int(11)          | NO   | PRI | 0       |       |
 * wl_title                | varbinary(255)   | NO   | PRI |         |       |
 * wl_notificationtimestamp | varbinary(14)   | YES  |     | NULL    |       |

mysql> describe watchlist; +--+-+--+-+-+---+ +--+-+--+-+-+---+ +--+-+--+-+-+---+ 4 rows in set (0.01 sec)
 * Field                   | Type            | Null | Key | Default | Extra |
 * wl_user                 | int(5) unsigned | NO   | PRI | NULL    |       |
 * wl_namespace            | int(11)         | NO   | PRI | 0       |       |
 * wl_title                | varchar(255)    | NO   | PRI | NULL    |       |
 * wl_notificationtimestamp | varchar(14)    | YES  |     | NULL    |       |

"DESCRIBE watchlist;" in version 1.8 gives the following: +--+-+--+-+-+---+ +--+-+--+-+-+---+ +--+-+--+-+-+---+
 * Field                   | Type            | Null | Key | Default | Extra |
 * wl_user                 | int(5) unsigned | NO   | PRI | NULL    |       |
 * wl_namespace            | int(11)         | NO   | PRI | 0       |       |
 * wl_title                | varchar(255)    | NO   | PRI | NULL    |       |
 * wl_notificationtimestamp | varchar(14)    | YES  |     | NULL    |       |

"DESCRIBE watchlist;" in version 1.5 gives the following: +--+-+--+-+-+---+ +--+-+--+-+-+---+ +--+-+--+-+-+---+
 * Field                   | Type            | Null | Key | Default | Extra |
 * wl_user                 | int(5) unsigned | NO   | PRI |         |       |
 * wl_namespace            | int(11)         | NO   | PRI | 0       |       |
 * wl_title                | varchar(255)    | NO   | PRI |         |       |
 * wl_notificationtimestamp | varchar(14)    | NO   |     | 0       |       |

"DESCRIBE watchlist;" in version 1.4 gives the following: +--+-+--+-+-++ +--+-+--+-+-++ +--+-+--+-+-++
 * Field           | Type                | Null | Key | Default | Extra          |
 * wl_user         | int(5) unsigned     |      |     |         |                |
 * wl_namespace    | tinyint(2) unsigned |      |     |    0    |                |
 * wl_title        | varchar(255) binary |      |     |    ''   |                |

Some of this information was adapted from  in the MediaWiki   directory.