logo

Taula de canvi de nom de MySQL

De vegades, el nostre nom de taula no té sentit, per la qual cosa cal canviar el nom o canviar el nom de la taula. MySQL proporciona una sintaxi útil que pot canviar el nom d'una o més taules de la base de dades actual.

Sintaxi

La sintaxi utilitzada per canviar el nom de la taula és la següent:

 mysql> RENAME old_table TO new_table; 

Aquí ens hem d'assegurar d'això nom_de_taula_nou no ha d'existir, i nom_taula_antiga hauria d'estar present a la base de dades. En cas contrari, llançarà un missatge d'error. És per assegurar-se que la taula no estigui bloquejada i que no hi hagi transaccions actives abans d'executar aquesta instrucció.

NOTA: Si fem servir la instrucció RENAME TABLE, cal tenir els privilegis ALTER i DROP TABLE a la taula existent. A més, aquesta instrucció no pot canviar el nom d'una taula temporal.

També podem utilitzar el MySQL CANVIA EL NOM DE LA TAULA sentència per canviar més d'un nom de taula amb una sola sentència, tal com es mostra a continuació:

 RENAME TABLE old_tab1 TO new_tab1, old_tab2 TO new_tab2, old_tab3 TO new_tab3; 

Des del MySQL 8.0.13 versió, podem canviar el nom de la taula antiga bloquejada amb una instrucció LOCK i també utilitza la clàusula WRITE LOCK. Per exemple, la següent és la declaració vàlida:

 mysql> LOCK TABLE old_tab_name1 WRITE; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2; 

No es permeten les següents declaracions:

 mysql> LOCK TABLE old_tab_name1 READ; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2; 

Abans de la versió de MySQL 8.0.13, no podem canviar el nom de la taula que estava bloquejat amb la instrucció LOCK TABLE.

MySQL també utilitza la instrucció RENAME TABLE per moure una taula d'una base de dades a una altra, que es mostra a continuació:

 mysql> RENAME TABLE current_db.tablel_name TO other_db.tablel_name; 

MySQL RENAME TABLE Exemple

Entendrem com funciona la instrucció RENAME TABLE a MySQL a través dels diferents exemples. Suposem que tenim una taula anomenada EMPLEAT , i per algun motiu, cal canviar-lo a la taula anomenada CLIENT .

Nom de la taula: empleat

Taula de canvi de nom de MySQL

A continuació, executeu la sintaxi següent per canviar el nom de la taula:

 mysql> RENAME employee TO customer; 

Sortida

centrant imatges en css

Veurem que la taula anomenada 'empleat' es canviarà per un nou nom de taula 'client':

Taula de canvi de nom de MySQL

A la sortida anterior, podem veure que si utilitzem el nom de la taula empleat després d'executar una instrucció RENAME TABLE, llançarà un missatge d'error.

Com canviar el nom de diverses taules

La instrucció RENAME TABLE a MySQL també ens permet canviar més d'un nom de taula dins d'una sola instrucció. Vegeu la declaració següent:

Suposem que la nostra base de dades ' el meu empleatb ' amb les taules següents:

Taula de canvi de nom de MySQL

Si volem canviar el nom de la taula client per l'empleat i les samarretes amb el nom de la taula per peces de vestir, executeu la instrucció següent:

 mysql> RENAME TABLE customer TO employee, shirts TO garments; 

Sortida

Podem veure que el nom de la taula del client en l'empleat i les samarretes del nom de la taula en peces de vestir s'han canviat de nom amb èxit.

Taula de canvi de nom de MySQL

Canvieu el nom de la taula amb la instrucció ALTER

La instrucció ALTER TABLE també es pot utilitzar per canviar el nom de la taula existent a la base de dades actual. A continuació es mostra la sintaxi de la sentència ALTER TABLE:

 ALTER TABLE old_table_name RENAME TO new_table_name; 

Vegeu la consulta següent que canvia les peces de vestir de nom de taula existents en samarretes noves de nom de taula:

com comprovar la mida de la pantalla
 mysql> ALTER TABLE garments RENAME TO shirts: 

Sortida

Aquí, podem veure que les peces de nom de taula canvien de nom a samarretes de nom de taula.

Taula de canvi de nom de MySQL

Com canviar el nom de la taula temporal

Una taula temporal ens permet conservar les dades temporals, que només són visibles i accessibles a la sessió actual. Per tant, primer, hem de crear una taula temporal utilitzant la següent instrucció:

 mysql> CREATE TEMPORARY TABLE Students( name VARCHAR(40) NOT NULL, total_marks DECIMAL(12,2) NOT NULL DEFAULT 0.00, total_subjects INT UNSIGNED NOT NULL DEFAULT 0); 

A continuació, inseriu valors en aquesta taula:

 mysql> INSERT INTO Students(name, total_marks, total_subjects) VALUES ('Joseph', 150.75, 2), ('Peter', 180.75, 2); 

A continuació, executeu l'ordre show table per comprovar la taula temporal:

 mysql> SELECT * FROM Students; 

Ara, executeu l'ordre següent per canviar el nom de la taula temporal:

 mysql> RENAME TABLE Students TO student_info; 

Llançarà un missatge d'error, com es mostra a continuació:

Taula de canvi de nom de MySQL

Així, MySQL permet que la instrucció ALTER table canviï el nom de la taula temporal:

 mysql> ALTER TABLE Students RENAME TO student_info; 

Sortida

Taula de canvi de nom de MySQL