14.2 Définition de données : CREATE , DROP , ALTER
14 Syntaxe des commandes SQL
Manuel de Référence MySQL 4.1 : Version Française
. Syntaxe de ALTER DATABASE . Syntaxe de ALTER TABLE . Syntaxe de CREATE DATABASE . Syntaxe de CREATE INDEX . Syntaxe de CREATE TABLE . Syntaxe de DROP DATABASE . Syntaxe de DROP INDEX . Syntaxe de DROP TABLE ->Syntaxe de RENAME TABLE
|
14.2.9 Syntaxe de RENAME TABLE
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.
|