A volte il nome della tabella non è significativo, quindi è necessario rinominare o modificare il nome della tabella. MySQL fornisce un'utile sintassi che può rinominare una o più tabelle nel database corrente.
Sintassi
Di seguito è riportata la sintassi utilizzata per modificare il nome della tabella:
mysql> RENAME old_table TO new_table;
Qui dobbiamo assicurarcene nuovo_nome_tabella non deve esistere, e vecchio_nome_tabella dovrebbe essere presente nel database. Altrimenti, genererà un messaggio di errore. Serve per garantire che la tabella non sia bloccata e che non vi siano transazioni attive prima di eseguire questa istruzione.
NOTA: se utilizziamo l'istruzione RENAME TABLE, è necessario disporre dei privilegi ALTER e DROP TABLE sulla tabella esistente. Inoltre, questa istruzione non può modificare il nome di una tabella temporanea.
Possiamo anche usare MySQL RINOMINARE LA TABELLA istruzione per modificare più di un nome di tabella con una singola istruzione, come mostrato di seguito:
RENAME TABLE old_tab1 TO new_tab1, old_tab2 TO new_tab2, old_tab3 TO new_tab3;
Dal MySQL 8.0.13 versione, possiamo cambiare il vecchio nome della tabella bloccata con un'istruzione LOCK e utilizzare anche la clausola WRITE LOCK. Ad esempio, di seguito è riportata l'istruzione valida:
mysql> LOCK TABLE old_tab_name1 WRITE; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2;
Non sono consentite le seguenti dichiarazioni:
mysql> LOCK TABLE old_tab_name1 READ; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2;
Prima della versione MySQL 8.0.13, non possiamo modificare il nome della tabella che era bloccata con l'istruzione LOCK TABLE.
MySQL utilizza anche l'istruzione RENAME TABLE per spostare una tabella da un database a un altro database, come mostrato di seguito:
mysql> RENAME TABLE current_db.tablel_name TO other_db.tablel_name;
Esempio di TABELLA RINOMINAZIONE MySQL
Cerchiamo di capire come funziona l'istruzione RENAME TABLE in MySQL attraverso i vari esempi. Supponiamo di avere una tabella denominata DIPENDENTE e, per qualche motivo, è necessario modificarlo nella tabella denominata CLIENTE .
Nome tabella: dipendente
Successivamente, esegui la seguente sintassi per modificare il nome della tabella:
mysql> RENAME employee TO customer;
Produzione
contiene pitone
Vedremo che la tabella denominata 'dipendente' verrà modificata in un nuovo nome di tabella 'cliente':
Nell'output precedente, possiamo vedere che se utilizziamo il nome della tabella impiegato dopo aver eseguito un'istruzione RENAME TABLE, verrà generato un messaggio di errore.
Come RINOMINARE più tabelle
L'istruzione RENAME TABLE in MySQL ci consente anche di modificare più di un nome di tabella all'interno di una singola istruzione. Vedere la dichiarazione seguente:
Supponiamo che il nostro database ' miodipendenteb ' avendo le seguenti tabelle:
Se vogliamo cambiare il nome della tabella cliente in dipendente e il nome della tabella camicie in indumenti, eseguiamo la seguente istruzione:
mysql> RENAME TABLE customer TO employee, shirts TO garments;
Produzione
Possiamo vedere che il nome della tabella cliente in dipendente e il nome della tabella camicie in indumenti sono stati rinominati con successo.
Rinominare la tabella utilizzando l'istruzione ALTER
L'istruzione ALTER TABLE può essere utilizzata anche per rinominare la tabella esistente nel database corrente. Di seguito è riportata la sintassi dell'istruzione ALTER TABLE:
ALTER TABLE old_table_name RENAME TO new_table_name;
Vedi la seguente query che modifica gli indumenti con nome della tabella esistente in nuove camicie con nome della tabella:
Immagini icloud su Android
mysql> ALTER TABLE garments RENAME TO shirts:
Produzione
Qui possiamo vedere che i capi con nome da tavolo sono stati rinominati in camicie con nome da tavolo.
Come RINOMINARE la tabella temporanea
Una tabella temporanea ci consente di conservare dati temporanei, visibili e accessibili solo nella sessione corrente. Quindi, per prima cosa dobbiamo creare una tabella temporanea utilizzando la seguente istruzione:
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);
Successivamente, inserisci i valori in questa tabella:
mysql> INSERT INTO Students(name, total_marks, total_subjects) VALUES ('Joseph', 150.75, 2), ('Peter', 180.75, 2);
Successivamente, esegui il comando show table per controllare la tabella temporanea:
mysql> SELECT * FROM Students;
Ora esegui il comando seguente per modificare il nome della tabella temporanea:
mysql> RENAME TABLE Students TO student_info;
Verrà generato un messaggio di errore, come mostrato di seguito:
Pertanto, MySQL consente all'istruzione ALTER table di rinominare la tabella temporanea:
mysql> ALTER TABLE Students RENAME TO student_info;
Produzione