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
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':
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:
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.
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.
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ó:
Així, MySQL permet que la instrucció ALTER table canviï el nom de la taula temporal:
mysql> ALTER TABLE Students RENAME TO student_info;
Sortida