Soms heeft onze tabelnaam geen betekenis, dus is het nodig om de naam van de tabel te hernoemen of te wijzigen. MySQL biedt een handige syntaxis waarmee u een of meer tabellen in de huidige database kunt hernoemen.
Syntaxis
Hieronder volgen de syntaxis die wordt gebruikt om de naam van de tabel te wijzigen:
mysql> RENAME old_table TO new_table;
Hier moeten we ervoor zorgen dat dat gebeurt nieuwe_tabelnaam mag niet bestaan, en oude_tabelnaam aanwezig moeten zijn in de database. Anders zal er een foutmelding verschijnen. Het is bedoeld om ervoor te zorgen dat de tabel niet is vergrendeld en dat er geen actieve transacties zijn voordat deze instructie wordt uitgevoerd.
OPMERKING: Als we de instructie RENAME TABLE gebruiken, is het vereist dat u ALTER- en DROP TABLE-rechten heeft voor de bestaande tabel. Ook kan deze instructie de naam van een tijdelijke tabel niet wijzigen.
We kunnen ook MySQL gebruiken HERNOEM TAFEL statement om meer dan één tabelnaam te wijzigen met één enkele instructie, zoals hieronder weergegeven:
RENAME TABLE old_tab1 TO new_tab1, old_tab2 TO new_tab2, old_tab3 TO new_tab3;
Van de MySQL 8.0.13 versie kunnen we de oude tabelnaam wijzigen die is vergrendeld met een LOCK-instructie en wordt ook de WRITE LOCK-clausule gebruikt. Hieronder volgen bijvoorbeeld de geldige uitspraken:
mysql> LOCK TABLE old_tab_name1 WRITE; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2;
De volgende uitspraken zijn niet toegestaan:
mysql> LOCK TABLE old_tab_name1 READ; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2;
Vóór de MySQL 8.0.13-versie kunnen we de tabelnaam die is vergrendeld met de LOCK TABLE-instructie niet wijzigen.
MySQL gebruikt ook de RENAME TABLE-instructie voor het verplaatsen van een tabel van de ene database naar een andere database, zoals hieronder weergegeven:
mysql> RENAME TABLE current_db.tablel_name TO other_db.tablel_name;
MySQL HERNAMETABEL Voorbeeld
Laten we aan de hand van de verschillende voorbeelden begrijpen hoe de RENAME TABLE-instructie in MySQL werkt. Stel dat we een tabel hebben met de naam MEDEWERKER , en om de een of andere reden is het nodig om dit te veranderen in de genoemde tabel KLANT .
Tabelnaam: werknemer
Voer vervolgens de volgende syntaxis uit om de tabelnaam te wijzigen:
mysql> RENAME employee TO customer;
Uitvoer
vervang de tekenreeks in Java
We zullen zien dat de tabel met de naam 'werknemer' wordt gewijzigd in een nieuwe tabelnaam 'klant':
In de bovenstaande uitvoer kunnen we zien dat als we de tabelnaam werknemer gebruiken na het uitvoeren van een RENAME TABLE-instructie, er een foutmelding wordt gegenereerd.
Meerdere tabellen hernoemen
Met de RENAME TABLE-instructie in MySQL kunnen we ook meer dan één tabelnaam binnen één enkele instructie wijzigen. Zie onderstaande verklaring:
Stel dat onze database ' mijnwerknemerb ' met de volgende tabellen:
Als we de tafelnaam klant willen veranderen in werknemer en tafelnaam shirts in kledingstukken, voer dan de volgende verklaring uit:
mysql> RENAME TABLE customer TO employee, shirts TO garments;
Uitvoer
We kunnen zien dat de tafelnaam van klant in werknemer en tafelnaamoverhemden in kledingstukken met succes zijn hernoemd.
Hernoem de tabel met behulp van de ALTER-instructie
De instructie ALTER TABLE kan ook worden gebruikt om de bestaande tabel in de huidige database te hernoemen. Hieronder volgt de syntaxis van de ALTER TABLE-instructie:
ALTER TABLE old_table_name RENAME TO new_table_name;
Zie de volgende zoekopdracht waarmee de bestaande tafelnaamkleding wordt gewijzigd in nieuwe tafelnaamoverhemden:
objectief Java
mysql> ALTER TABLE garments RENAME TO shirts:
Uitvoer
Hier kunnen we zien dat de tafelnaamkleding is omgedoopt tot tafelnaamoverhemd.
Hoe u een tijdelijke tabel kunt hernoemen
Met een tijdelijke tabel kunnen we tijdelijke gegevens bewaren, die alleen zichtbaar en toegankelijk zijn in de huidige sessie. We moeten dus eerst een tijdelijke tabel maken met behulp van de volgende instructie:
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);
Voeg vervolgens waarden in deze tabel in:
mysql> INSERT INTO Students(name, total_marks, total_subjects) VALUES ('Joseph', 150.75, 2), ('Peter', 180.75, 2);
Voer vervolgens de opdracht show table uit om de tijdelijke tabel te controleren:
mysql> SELECT * FROM Students;
Voer nu de volgende opdracht uit om de naam van de tijdelijke tabel te wijzigen:
mysql> RENAME TABLE Students TO student_info;
Er wordt een foutmelding gegenereerd, zoals hieronder weergegeven:
MySQL staat dus toe dat de ALTER-tabelinstructie de naam van de tijdelijke tabel hernoemt:
mysql> ALTER TABLE Students RENAME TO student_info;
Uitvoer