logo

MySQL Byt namn på tabell

Ibland är vårt tabellnamn meningslöst, så det är nödvändigt att byta namn på eller ändra namnet på tabellen. MySQL tillhandahåller en användbar syntax som kan byta namn på en eller flera tabeller i den aktuella databasen.

Syntax

Följande är syntaxen som används för att ändra namnet på tabellen:

 mysql> RENAME old_table TO new_table; 

Här måste vi se till det nytt_tabellnamn får inte finnas, och old_table_name bör finnas i databasen. Annars kommer det att skicka ett felmeddelande. Det är för att säkerställa att tabellen inte är låst så väl som det inte finns några aktiva transaktioner innan du kör detta uttalande.

OBS: Om vi ​​använder RENAME TABLE-satsen krävs att den har ALTER- och DROP TABLE-behörigheter till den befintliga tabellen. Den här satsen kan inte heller ändra namnet på en temporär tabell.

Vi kan också använda MySQL BYT DAMN TABELL sats för att ändra mer än ett tabellnamn med en enda sats, som visas nedan:

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

Från MySQL 8.0.13 version kan vi ändra det gamla tabellnamnet låst med en LOCK-sats och använder även WRITE LOCK-satsen. Följande är till exempel det giltiga påståendet:

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

Följande uttalande är inte tillåtna:

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

Före versionen av MySQL 8.0.13 kan vi inte ändra tabellnamnet som var låst med LOCK TABLE-satsen.

MySQL använder också RENAME TABLE-satsen för att flytta en tabell från en databas till en annan databas, vilket visas nedan:

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

MySQL RENAME TABELL Exempel

Låt oss förstå hur RENAME TABLE-satsen fungerar i MySQL genom de olika exemplen. Anta att vi har en tabell som heter ANSTÄLLD , och av någon anledning finns det ett behov av att ändra det till tabellen med namnet KUND .

Tabell Namn: anställd

MySQL Byt namn på tabell

Kör sedan följande syntax för att ändra tabellnamnet:

 mysql> RENAME employee TO customer; 

Produktion

32-bitars arkitektur vs 64-bitars

Vi kommer att se att tabellen med namnet 'anställd' kommer att ändras till ett nytt tabellnamn 'kund':

MySQL Byt namn på tabell

I ovanstående utdata kan vi se att om vi använder tabellnamnet anställd efter att ha kört en RENAME TABLE-sats, kommer det att skicka ett felmeddelande.

Hur man byter namn på flera tabeller

RENAME TABLE-satsen i MySQL tillåter oss också att ändra mer än ett tabellnamn inom en enda sats. Se nedanstående uttalande:

Anta att vår databas ' min anställdb ' med följande tabeller:

MySQL Byt namn på tabell

Om vi ​​vill ändra bordsnamnet kund till anställd och bordsnamnskjortor till plagg, utför följande uttalande:

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

Produktion

Vi kan se att bordet namn kunden till anställd och bord namn skjortor till plagg framgångsrikt har bytt namn.

MySQL Byt namn på tabell

Byt namn på tabellen med ALTER-satsen

ALTER TABLE-satsen kan också användas för att byta namn på den befintliga tabellen i den aktuella databasen. Följande är syntaxen för ALTER TABLE-satsen:

 ALTER TABLE old_table_name RENAME TO new_table_name; 

Se följande fråga som ändrar befintliga bordsnamnsplagg till nya bordsnamnskjortor:

java-sträng till boolesk
 mysql> ALTER TABLE garments RENAME TO shirts: 

Produktion

Här kan vi se att bordsnamnsplaggen bytt namn till bordsnamnskjortor.

MySQL Byt namn på tabell

Hur man byter namn på tillfällig tabell

En temporär tabell tillåter oss att behålla temporär data, som endast är synlig och tillgänglig i den aktuella sessionen. Så först måste vi skapa en tillfällig tabell med följande uttalande:

 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); 

Infoga sedan värden i den här tabellen:

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

Kör sedan kommandot show table för att kontrollera den tillfälliga tabellen:

 mysql> SELECT * FROM Students; 

Kör nu följande kommando för att ändra namnet på den tillfälliga tabellen:

 mysql> RENAME TABLE Students TO student_info; 

Det kommer att skicka ett felmeddelande, som visas nedan:

MySQL Byt namn på tabell

Således tillåter MySQL ALTER-tabellsatsen att byta namn på den temporära tabellen:

 mysql> ALTER TABLE Students RENAME TO student_info; 

Produktion

MySQL Byt namn på tabell