RENAME TABLE nom_de_table TO nouveau_nom_de_table[, nom_de_table2 TO nouveau_nom_de_table2,...]
Le changement de nom se fait atomiquement ce qui signifie qu'aucun autre processus ne peut accéder la table tant que l'opération est en cours. Cela rend possible de remplacer une vielle table avec une table vide :
CREATE TABLE nouvelle_table (...); RENAME TABLE ancienne_table TO backup_table, nouvelle_table TO ancienne_table;
L'opération s'effectue de gauche à droite ce qui signifie que si vous voulez échanger deux noms de tables, vous devez :
RENAME TABLE ancienne_table TO backup_table, nouvelle_table TO ancienne_table, backup_table TO nouvelle_table;
Si les deux bases de données sont sur le même disque, vous pouvez renommer à travers les bases :
RENAME TABLE bdd_courante.nom_de_table TO autre_bdd.nom_de_table;
Quand vous exécutez RENAME
, vous ne pouvez
avoir aucune transaction active ou une table protégée en mode
écriture. Vous devez avoir les privilèges
ALTER
et DROP
sur
l'ancienne table, et les privilèges CREATE
et INSERT
sur la nouvelle.
Si MySQL rencontre des erreurs dans un renommage multiple, il remettra les noms changés à leurs valeurs d'origine pour revenir à l'état d'origine.
RENAME TABLE
a été ajouté à la version
3.23.23 de MySQL.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.