Manual:Page table/fr

La table des pages peut être considérée comme le « coeur du wiki ». Chaque page d'une installation MediaWiki a une entrée ici qui l'identifie par le titre et qui contient quelques métadonnées essentielles. Introduit pour la première fois dans r6710, dans MediaWiki 1.5.

Le texte de la page elle-même est contenu dans la table. Pour récupérer le texte d'un article, MediaWiki cherche d'abord page_title dans la table des pages. Ensuite, page_latest est utilisé pour chercher dans la table, et  est obtenu dans le processus. La valeur obtenue pour est utilisée pour chercher  dans la table des textes pour récupérer le texte. Quand une page est supprimée, les révisions sont déplacées vers la table.

page_id
Clé primaire d'identification unique. Cette valeur est préservée des modifications et des renommages.

Les IDs des pages ne changent pas lorsque les pages sont déplacées, mais ils sont toujours modifiés lorsque les pages sont supprimées puis restaurées. Depuis MediaWiki 1.27, cette valeur est encore 'préservée' des suppressions par un champ analogue dans la table d'archive (introduit dans MediaWiki 1.11).

MediaWiki offre un nombre d'outils adaptés :


 * L'ID de chacune des pages (excepté les pages spéciales) peut être recherché par le lien « page information » du menu Outils.
 * Le mot magique peut être utilisé pour retourner l'Id de chaque page.
 * La page spéciale Special:Redirect peur être utilisée pour accéder aux pages via leur ID de page. Par exemple, Special:Redirect/page/, redirige vers la page actuelle.
 * index.php accepte le paramètre  pour accéder aux pages avec leur ID de page. Par exemple, [///w/index.php?curid= /w/index.php?curid=] va charger la page actuelle.

Il existe aussi beaucoup de fonctionalités d' API qui soit retournent, soit prennent entrée l'ID des pages. Par exemple, pour la page actuelle,, voir http://www.mediawiki.org/w/api.php?action=query&prop=info&titles=Manual:Page%20table et http://www.mediawiki.org/w/api.php?action=query&prop=info&pageids=10501. Ce champ peut être accédé par,  , etc.

page_namespace
Un nom de page est composé d'un espace de noms et d'un titre. Les clés des espaces de noms sont des constantes indépendantes de la langue de l'interface utilisateur, et définies dans.

Ce champ contient le numéro de l'espace de noms de la page. L'intervalle des valeurs de 0 à 15 est pour les espaces de noms standards, et celui de 100 à 2147483647 pour les espaces de noms personnalisés.

page_title
Titre de la page expurgé, sans l'espace de noms, sur un maximum de 255 caractères (binaires). Il est enregistré comme texte, avec les espaces remplacés par des soulignés '_'. Le vrai titre affiché dans les articles est simplement ce titre dans lequel les soulignés (_) sont remplacés par des espaces. Par exemple, une page dont le titre est « Talk:Foo Bar » aurait « Foo_Bar » dans ce champ.

page_restrictions
Ensemble de clés d'autorisation, séparées par des virgules, et indiquant qui a le droit de déplacer ou de modifier la page. Les sections de modification et de déplacement sont séparées par une virgule (par exemple, « edit=autoconfirmed,sysop:move=sysop »).

page_counter
Nombre de fois où la page a été vue. This feature was completely removed in MediaWiki 1.25, following a request for comment. Even before that, many sites including Wikimedia projects disabled it to increase performance; see for details.

page_is_redirect
Une valeur de   indique ici que l'article est une redirection; dans tous les autres cas, la valeur est  .

page_is_new
This field stores whether the page is a new, meaning it either has only one revision or has not been edited since being restored, even if there is more than one revision. If the field contains a value of  , then it indicates that the page is a new; otherwise, it is  . Rollback links are not displayed if the page is new, since there is nothing to roll back to.

page_random
Valeur décimale aléatoire, entre 0 et 1, utilisée pour Special:Random (voir pour plus de détails). Généré par.

Around 2005, a bug caused these random values to be non-uniform. Since the field is set at page creation, wikis that have existed for a long time might still have some of these erroneous values. See T208909.

page_touched
Cette référence horaire est mise à jour chaque fois que la page est modifiée et que cela nécessite de la regénérer, en invalidant les caches. Aside from editing, this includes permission changes, creation or deletion of linked pages, and alteration of contained templates. Mis à au moment de la création de la page.

page_links_updated
This timestamp is updated whenever a page is re-parsed and it has all the link tracking tables updated for it. This is useful for de-duplicating expensive backlink update jobs. Set to the default value of NULL when the page is created by WikiPage::insertOn.

page_latest
Ceci est une clé étrangère de rev_id pour la révision actuelle. Peut être à zéro pendant la création de la page. It needs to link to a revision with a valid, or there will be the "The revision #0 of the page named 'Foo' does not exist" error when one tries to view the page. Peut être obtenu via.

page_len
Longueur non compressée en octets du texte source actuel de la page.

This however, does not apply to images which still have records in this table. Instead, the uncompressed length in bytes of the  for the file is used as the latter is in the   field.

The  class in   has two methods, viz.,   and   that are responsible for populating these details.

page_content_model
Content model, see CONTENT_MODEL_XXX constants. Comparable à.

page_lang
Langue de la page de contenu. Initialiser avec la valeur NULL par défaut au moment de la création de page.

Résumé du schéma
++-+--+-+++ ++-+--+-+++ ++-+--+-+++
 * Field             | Type                | Null | Key | Default        | Extra          |
 * page_id           | int(10) unsigned    | NO   | PRI | NULL           | auto_increment |
 * page_namespace    | int(11)             | NO   | MUL | NULL           |                |
 * page_title        | varbinary(255)      | NO   |     | NULL           |                |
 * page_restrictions | tinyblob            | NO   |     | NULL           |                |
 * page_is_redirect  | tinyint(3) unsigned | NO   | MUL | 0              |                |
 * page_is_new       | tinyint(3) unsigned | NO   |     | 0              |                |
 * page_random       | double unsigned     | NO   | MUL | NULL           |                |
 * page_touched      | binary(14)          | NO   |     |                |                |
 * page_links_updated | varbinary(14)      | YES  |     | NULL           |                |
 * page_latest       | int(10) unsigned    | NO   |     | NULL           |                |
 * page_len          | int(10) unsigned    | NO   | MUL | NULL           |                |
 * page_content_model | varbinary(32)      | YES  |     | NULL           |                |
 * page_lang         | varbinary(35)       | YES  |     | NULL           |                |

++-+--+-+-++ ++-+--+-+-++ ++-+--+-+-++
 * Field             | Type                | Null | Key | Default | Extra          |
 * page_id           | int(10) unsigned    | NO   | PRI | NULL    | AUTO_INCREMENT |
 * page_namespace    | int(11)             | NO   | MUL | NULL    |                |
 * page_title        | varchar(255) binary | NO   |     | NULL    |                |
 * page_restrictions | tinyblob            | NO   |     | NULL    |                |
 * page_counter      | bigint(20) unsigned | NO   |     | 0       |                |
 * page_is_redirect  | tinyint(3) unsigned | NO   | MUL | 0       |                |
 * page_is_new       | tinyint(3) unsigned | NO   |     | 0       |                |
 * page_random       | real unsigned       | NO   | MUL | NULL    |                |
 * page_touched      | binary(14)          | NO   |     | NULL    |                |
 * page_links_updated | varbinary(14)      | YES  |     | NULL    |                |
 * page_latest       | int(10) unsigned    | NO   |     | NULL    |                |
 * page_len          | int(10) unsigned    | NO   | MUL | NULL    |                |
 * page_content_model | varbinary(32)      | YES  |     | NULL    |                |
 * page_lang         | varbinary(35)       | YES  |     | NULL    |                |

++-+--+-+-++ ++-+--+-+-++ ++-+--+-+-++
 * Field             | Type                | Null | Key | Default | Extra          |
 * page_id           | int(10) unsigned    | NO   | PRI | NULL    | AUTO_INCREMENT |
 * page_namespace    | int(11)             | NO   | MUL | NULL    |                |
 * page_title        | varchar(255) binary | NO   |     | NULL    |                |
 * page_restrictions | tinyblob            | NO   |     | NULL    |                |
 * page_counter      | bigint(20) unsigned | NO   |     | 0       |                |
 * page_is_redirect  | tinyint(3) unsigned | NO   | MUL | 0       |                |
 * page_is_new       | tinyint(3) unsigned | NO   |     | 0       |                |
 * page_random       | real unsigned       | NO   | MUL | NULL    |                |
 * page_touched      | binary(14)          | NO   |     | NULL    |                |
 * page_links_updated | varbinary(14)      | YES  |     | NULL    |                |
 * page_latest       | int(10) unsigned    | NO   |     | NULL    |                |
 * page_len          | int(10) unsigned    | NO   | MUL | NULL    |                |
 * page_content_model | varbinary(32)      | YES  |     | NULL    |                |

++-+--+-+-++ ++-+--+-+-++ ++-+--+-+-++
 * Field             | Type                | Null | Key | Default | Extra          |
 * page_id           | int(10) unsigned    | NO   | PRI | NULL    | AUTO_INCREMENT |
 * page_namespace    | int(11)             | NO   | MUL | NULL    |                |
 * page_title        | varchar(255) binary | NO   |     | NULL    |                |
 * page_restrictions | tinyblob            | NO   |     | NULL    |                |
 * page_counter      | bigint(20) unsigned | NO   |     | 0       |                |
 * page_is_redirect  | tinyint(3) unsigned | NO   | MUL | 0       |                |
 * page_is_new       | tinyint(3) unsigned | NO   |     | 0       |                |
 * page_random       | real unsigned       | NO   | MUL | NULL    |                |
 * page_touched      | binary(14)          | NO   |     | NULL    |                |
 * page_latest       | int(10) unsigned    | NO   |     | NULL    |                |
 * page_len          | int(10) unsigned    | NO   | MUL | NULL    |                |
 * page_content_model | varbinary(32)      | YES  |     | NULL    |                |

+---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++
 * Field            | Type                | Null | Key | Default | Extra          |
 * page_id          | int(10) unsigned    | NO   | PRI | NULL    | AUTO_INCREMENT |
 * page_namespace   | int(11)             | NO   | MUL | NULL    |                |
 * page_title       | varchar(255) binary | NO   |     | NULL    |                |
 * page_restrictions | tinyblob           | NO   |     | NULL    |                |
 * page_counter     | bigint(20) unsigned | NO   |     | 0       |                |
 * page_is_redirect | tinyint(3) unsigned | NO   | MUL | 0       |                |
 * page_is_new      | tinyint(3) unsigned | NO   |     | 0       |                |
 * page_random      | real unsigned       | NO   | MUL | NULL    |                |
 * page_touched     | binary(14)          | NO   |     | NULL    |                |
 * page_latest      | int(10) unsigned    | NO   |     | NULL    |                |
 * page_len         | int(10) unsigned    | NO   | MUL | NULL    |                |

+---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++
 * Field            | Type                | Null | Key | Default | Extra          |
 * page_id          | int(10) unsigned    | NO   | PRI | NULL    | AUTO_INCREMENT |
 * page_namespace   | int(11)             | NO   | MUL | NULL    |                |
 * page_title       | varchar(255) binary | NO   |     | NULL    |                |
 * page_restrictions | tinyblob           | NO   |     | NULL    |                |
 * page_counter     | bigint(20) unsigned | NO   |     | 0       |                |
 * page_is_redirect | tinyint(3) unsigned | NO   |     | 0       |                |
 * page_is_new      | tinyint(3) unsigned | NO   |     | 0       |                |
 * page_random      | real unsigned       | NO   | MUL | NULL    |                |
 * page_touched     | binary(14)          | NO   |     | NULL    |                |
 * page_latest      | int(10) unsigned    | NO   |     | NULL    |                |
 * page_len         | int(10) unsigned    | NO   | MUL | NULL    |                |

+---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++
 * Field            | Type                | Null | Key | Default | Extra          |
 * page_id          | int(8) unsigned     | NO   | PRI | NULL    | AUTO_INCREMENT |
 * page_namespace   | int(11)             | NO   | MUL | NULL    |                |
 * page_title       | varchar(255) binary | NO   |     | NULL    |                |
 * page_restrictions | tinyblob           | NO   |     | NULL    |                |
 * page_counter     | bigint(20) unsigned | NO   |     | 0       |                |
 * page_is_redirect | tinyint(1) unsigned | NO   |     | 0       |                |
 * page_is_new      | tinyint(1) unsigned | NO   |     | 0       |                |
 * page_random      | real unsigned       | NO   | MUL | NULL    |                |
 * page_touched     | char(14) binary     | NO   |     | NULL    |                |
 * page_latest      | int(8) unsigned     | NO   |     | NULL    |                |
 * page_len         | int(8) unsigned     | NO   | MUL | NULL    |                |

Index
+---++-+--+--+---+-+--++--++-+---+ +---++-+--+--+---+-+--++--++-+---+ +---++-+--+--+---+-+--++--++-+---+
 * Table | Non_unique | Key_name                   | Seq_in_index | Column_name      | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
 * page |          0 | PRIMARY                     |            1 | page_id          | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          0 | name_title                  |            1 | page_namespace   | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          0 | name_title                  |            2 | page_title       | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          1 | page_random                 |            1 | page_random      | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          1 | page_len                    |            1 | page_len         | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          1 | page_redirect_namespace_len |            1 | page_is_redirect | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          1 | page_redirect_namespace_len |            2 | page_namespace   | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          1 | page_redirect_namespace_len |            3 | page_len         | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |

Pages de listing et relations avec les autres tables essentielles
Le code suivant va sélectionner la version la plus récente de tous les articles dans les tables système [page, revision, text] :

Other important considerations:


 * to find undeleted pages add "r.rev_deleted = 0"
 * to find pages in namespace 0 add "p.page_namespace = 0"
 * to find pages that are not redirects add "p.page_is_redirect = 0"

These additional statements can be added either as conditions to a Where statement or as conditions on the appropriate Inner Join statement.

Deleting pages with their relationships in text and revision tables
The following shows the steps to run to help you delete pages and their children from the main pages in the page, revision and text tables.

Listing all related table keys

Deleting from database the rows

Vous devriez obtenir un résultat se présentant ainsi :

 +--+--+--+ +--+--+--+ +--+--+--+ 1 row in set (0.07 sec)
 * page                                            | revision                                         | text                                             |
 * IN(5530,5528,5529,5530,5529,5528,5532,5532,5532) | IN(9918,9921,9917,9919,9920,9916,9922,9915,9923) | IN(9918,9921,9917,9919,9920,9916,9922,9915,9923) |

Remplacez l'ID concaténé dans la requête suivante

Vous pouvez ensuite faire un peu de nettoyage en utilisant ce script de maintenance :