Noen ganger er tabellnavnet vårt meningsløst, så det er nødvendig å gi nytt navn eller endre navnet på tabellen. MySQL gir en nyttig syntaks som kan gi nytt navn til en eller flere tabeller i gjeldende database.
Syntaks
Følgende er syntaksen som brukes til å endre navnet på tabellen:
mysql> RENAME old_table TO new_table;
Her må vi sørge for det nytt_tabellnavn må ikke eksistere, og gammelt_tabellnavn skal være til stede i databasen. Ellers vil det gi en feilmelding. Det er for å sikre at tabellen ikke er låst så vel som det ikke er noen aktive transaksjoner før du utfører denne setningen.
MERK: Hvis vi bruker RENAME TABLE-setningen, er det nødvendig å ha ALTER- og DROP TABLE-rettigheter til den eksisterende tabellen. Denne setningen kan heller ikke endre navnet på en midlertidig tabell.
Vi kan også bruke MySQL GJENNOMFØR TABELL setning for å endre mer enn ett tabellnavn med en enkelt setning, 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 versjon, kan vi endre det gamle tabellnavnet låst med en LOCK-setning og bruker også WRITE LOCK-leddet. Følgende er for eksempel den gyldige uttalelsen:
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 uttalelser er ikke tillatt:
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-versjonen kan vi ikke endre tabellnavnet som ble låst med LOCK TABLE-setningen.
MySQL bruker også RENAME TABLE-setningen for å flytte en tabell fra en database til en annen database, som vises nedenfor:
mysql> RENAME TABLE current_db.tablel_name TO other_db.tablel_name;
MySQL RENAME TABELL Eksempel
La oss forstå hvordan RENAME TABLE-setningen fungerer i MySQL gjennom de forskjellige eksemplene. Anta at vi har en tabell som heter ANSATT , og av en eller annen grunn er det behov for å endre den til tabellen som heter KUNDE .
Tabell Navn: ansatt
Deretter kjører du følgende syntaks for å endre tabellnavnet:
mysql> RENAME employee TO customer;
Produksjon
latex liste
Vi vil se at tabellen med navnet 'ansatt' vil bli endret til et nytt tabellnavn 'kunde':
I utgangen ovenfor kan vi se at hvis vi bruker tabellnavnet ansatt etter å ha utført en RENAME TABLE-setning, vil den gi en feilmelding.
Hvordan gi nytt navn til flere tabeller
RENAME TABLE-setning i MySQL lar oss også endre mer enn ett tabellnavn i en enkelt setning. Se uttalelsen nedenfor:
Anta at vår database ' min ansattb ' har følgende tabeller:
Hvis vi ønsker å endre bordnavnkunden til ansatt og bordnavnskjorter til plagg, utfør følgende setning:
mysql> RENAME TABLE customer TO employee, shirts TO garments;
Produksjon
Vi kan se at bordet navn kunden til ansatt og bord navn skjorter til plagg har vellykket endret navn.
Gi tabell nytt navn med ALTER-setningen
ALTER TABLE-setningen kan også brukes til å gi nytt navn til den eksisterende tabellen i gjeldende database. Følgende er syntaksen til ALTER TABLE-setningen:
ALTER TABLE old_table_name RENAME TO new_table_name;
Se følgende spørring som endrer de eksisterende bordnavnsplaggene til nye bordnavnskjorter:
erstatte en farge i gimp
mysql> ALTER TABLE garments RENAME TO shirts:
Produksjon
Her kan vi se at plaggene omdøpt til bordnavnsskjorter.
Hvordan gi nytt navn til midlertidig tabell
En midlertidig tabell lar oss beholde midlertidige data, som kun er synlige og tilgjengelige i gjeldende økt. Så først må vi lage en midlertidig tabell ved å bruke følgende uttalelse:
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);
Deretter setter du inn verdier i denne tabellen:
mysql> INSERT INTO Students(name, total_marks, total_subjects) VALUES ('Joseph', 150.75, 2), ('Peter', 180.75, 2);
Deretter kjører du show table-kommandoen for å sjekke den midlertidige tabellen:
mysql> SELECT * FROM Students;
Kjør nå følgende kommando for å endre navnet på den midlertidige tabellen:
mysql> RENAME TABLE Students TO student_info;
Det vil gi en feilmelding, som vist nedenfor:
Dermed lar MySQL ALTER-tabellsetningen gi nytt navn til den midlertidige tabellen:
mysql> ALTER TABLE Students RENAME TO student_info;
Produksjon