Nogle gange er vores tabelnavn uden betydning, så det er påkrævet at omdøbe eller ændre navnet på tabellen. MySQL giver en nyttig syntaks, der kan omdøbe en eller flere tabeller i den aktuelle database.
Syntaks
Følgende er den syntaks, der bruges til at ændre navnet på tabellen:
mysql> RENAME old_table TO new_table;
Her skal vi sørge for det nyt_tabel_navn må ikke eksistere, og old_table_name skal være til stede i databasen. Ellers sender den en fejlmeddelelse. Det er for at sikre, at tabellen ikke er låst, samt at der ikke er nogen aktive transaktioner, før denne erklæring udføres.
BEMÆRK: Hvis vi bruger RENAME TABLE-sætningen, er det nødvendigt at have ALTER- og DROP TABLE-rettigheder til den eksisterende tabel. Denne sætning kan heller ikke ændre navnet på en midlertidig tabel.
Vi kan også bruge MySQL OMDØB TABEL sætning for at ændre mere end ét tabelnavn med en enkelt sætning, som vist nedenfor:
RENAME TABLE old_tab1 TO new_tab1, old_tab2 TO new_tab2, old_tab3 TO new_tab3;
Fra MySQL 8.0.13 version, kan vi ændre det gamle tabelnavn låst med en LOCK-sætning og bruger også WRITE LOCK-sætningen. Følgende er f.eks. de gyldige udsagn:
mysql> LOCK TABLE old_tab_name1 WRITE; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2;
Følgende udtalelser er ikke tilladt:
mysql> LOCK TABLE old_tab_name1 READ; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2;
Før MySQL 8.0.13-versionen kan vi ikke ændre tabelnavnet, der blev låst med LOCK TABLE-sætningen.
MySQL bruger også RENAME TABLE-sætningen til at flytte en tabel fra en database til en anden database, som er vist nedenfor:
mysql> RENAME TABLE current_db.tablel_name TO other_db.tablel_name;
MySQL-OMDØB TABEL Eksempel
Lad os forstå, hvordan RENAME TABLE-sætningen fungerer i MySQL gennem de forskellige eksempler. Antag, at vi har en tabel ved navn MEDARBEJDER , og af en eller anden grund er der behov for at ændre den til den navngivne tabel KUNDE .
Tabel Navn: medarbejder
Udfør derefter følgende syntaks for at ændre tabelnavnet:
mysql> RENAME employee TO customer;
Produktion
c tilfældigt tal
Vi vil se, at tabellen med navnet 'medarbejder' vil blive ændret til et nyt tabelnavn 'kunde':
I ovenstående output kan vi se, at hvis vi bruger tabelnavnet medarbejder efter at have udført en RENAME TABLE-sætning, vil den afgive en fejlmeddelelse.
Sådan omdøbes flere tabeller
RENAME TABLE-sætning i MySQL giver os også mulighed for at ændre mere end ét tabelnavn i en enkelt sætning. Se nedenstående erklæring:
Antag vores database ' min medarbejderb ' med følgende tabeller:
Hvis vi ønsker at ændre bordnavnkunden til medarbejder og bordnavnsskjorter til beklædningsgenstande, skal du udføre følgende erklæring:
mysql> RENAME TABLE customer TO employee, shirts TO garments;
Produktion
Vi kan se, at bordet navn kunden til medarbejder og bord navn skjorter til beklædningsgenstande er blevet omdøbt.
Omdøb tabel ved hjælp af ALTER-sætning
ALTER TABLE-sætningen kan også bruges til at omdøbe den eksisterende tabel i den aktuelle database. Følgende er syntaksen for ALTER TABLE-sætningen:
ALTER TABLE old_table_name RENAME TO new_table_name;
Se følgende forespørgsel, der ændrer de eksisterende bordnavnetøj til nye bordnavneskjorter:
erstatte en farve i gimp
mysql> ALTER TABLE garments RENAME TO shirts:
Produktion
Her kan vi se, at tøjet med bordnavne er omdøbt til bordskjorter.
Sådan omdøbes midlertidig tabel
En midlertidig tabel giver os mulighed for at beholde midlertidige data, som kun er synlige og tilgængelige i den aktuelle session. Så først skal vi oprette en midlertidig tabel ved hjælp af følgende sætning:
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);
Indsæt derefter værdier i denne tabel:
mysql> INSERT INTO Students(name, total_marks, total_subjects) VALUES ('Joseph', 150.75, 2), ('Peter', 180.75, 2);
Kør derefter kommandoen show table for at kontrollere den midlertidige tabel:
mysql> SELECT * FROM Students;
Kør nu følgende kommando for at ændre navnet på den midlertidige tabel:
mysql> RENAME TABLE Students TO student_info;
Det vil sende en fejlmeddelelse, som vist nedenfor:
MySQL tillader således ALTER-tabelsætningen at omdøbe den midlertidige tabel:
mysql> ALTER TABLE Students RENAME TO student_info;
Produktion